时间日期处理库——Day.js(js 日期处理)

boyanx5个月前技术教程12

官网:https://day.js.org/en

Github:https://github.com/iamkun/dayjs

1. 安装

1.1. 下载

下载地址:
https://github.com/iamkun/dayjs/releases

<script src="path/to/dayjs/dayjs.min.js"></script>
<script>dayjs().format()</script>

1.2. CDN

<script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
<script>dayjs().format()</script>

1.3. Node.JS

npm install dayjs --save
var dayjs = require('dayjs')
//import dayjs from 'dayjs' // ES 2015
dayjs().format()

1.4. TypeScript

npm install dayjs --save
import * as dayjs from 'dayjs'
dayjs().format()

更多见官方文档:
https://day.js.org/docs/en/installation/typescript

2. API

2.1. 解析

Day.js 并没有改变或覆盖 Javascript 原生的 Date.prototype, 而是创造了一个全新的包含 Javascript Date 的 Day.js 对象,可以直接使用 dayjs() 来调用。

Day.js 对象是不可变的, 所有的 API 操作都将返回一个新的 Day.js 对象。

// 返回包含当前日期和时间的 Day.js 对象
// 什么都不传,相当于 dayjs(new Date())
let now = dayjs();
// 传入一个标准的 ISO 8601 时间字符串
// https://en.wikipedia.org/wiki/ISO_8601
let date = dayjs('2020-06-01');
// 传入一个 Unix 时间戳 (13位)
let date = dayjs(1591149248030);
// 传入一个 Javascript Date 对象
let date = dayjs(new Date(2020, 6, 1));
// 因为 Day.js 对象是不可变的,可使用如下方法获取一个对象拷贝
let date1 = date.clone(); // 方法一:在一个 Day.js 对象上使用 clone 函数
let date2 = dayjs(date); // 方法二:传入一个 Day.js 对象
// 检查当前 Day.js 对象是否是有效日期时间
if (dayjs().isValid()) {
// 有效
} else {
// 无效
}

2.2. 获取和设置

// 获取,返回 number 类型的值
dayjs().year(); // 年 ==> dayjs().get('year')
dayjs().month(); // 月 ==> dayjs().get('month')
dayjs().date(); // 日 ==> dayjs().get('date')
dayjs().hour(); // 时 ==> dayjs().get('hour')
dayjs().minute(); // 分 ==> dayjs().get('minute')
dayjs().second(); // 秒 ==> dayjs().get('second')
dayjs().millisecond(); // 毫秒 ==> dayjs().get('millisecond')
dayjs().day(); // 本周的第几天 ==> dayjs().get('day')
// 设置,单位对应的值大小写不敏感
dayjs().set('month', 3);
dayjs().set('second', 30);

2.3. 操作

// 增加
dayjs().add(7, 'day'); // 增加 7 天
// 减少
dayjs().subtract(2, 'month'); // 减少 2 个月
// 开头
dayjs().startOf('month'); // 当月第一天
// 末尾
dayjs().endOf('year'); // 当年最后一天

2.4. 显示

// 格式化
dayjs().format(); // 默认格式,如:2020-06-03T20:06:13+08:00
dayjs().format("YYYY-MM-DD HH:mm:ss"); // 指定格式 2020-06-03 20:07:12
// 获取两个 Day.js 对象的时间差,默认毫秒,可指定单位
dayjs('2020').diff(dayjs('1998')); // 694224000000
dayjs('2020').diff(dayjs('1998'), 'year'); // 22
// 时间戳
dayjs().valueOf(); // 毫秒
dayjs().unix(); // 秒
// 天数
dayjs('2020-07').daysInMonth(); // 31
// 原生 Date 对象
dayjs().toDate(); // Wed Jun 03 2020 20:13:40 GMT+0800 (China Standard Time)
// 返回 ISO 8601 格式的字符串
dayjs().toJSON(); // "2020-06-03T12:15:54.635Z"
dayjs().toISOString(); // "2020-06-03T12:16:48.199Z"

2.5. 查询

// 检查一个日期是否在另一个日期之前
dayjs('2020-06-03').isBefore(dayjs('2020-05-03')); // false
// 检查一个日期是否在另一个日期之后dayjs('2020-06-03').isAfter(dayjs('2020-05-03')); // true
// 检查两个日期是否相同dayjs('2020-06-03').isSame(dayjs('2020-06-03')); // true
标签: date.js

相关文章

「Excel-VBA」功能模块-时间与日期-03-昨天是几号

系统环境:Windows 10Excel:2016版本这个系列集锦一些常用的功能模块,在一些项目中会穿插应用功能模块中又包括很多子模块,本文涉及的是:时间与日期今天讲讲如何获取昨天是几号Part 1:...

明查|俄罗斯3月11日正式和世界互联网断开链接?

明查员 胡甄卿 陈蕾速览-近日,网传消息称,俄罗斯3月11日正式和世界互联网断网。在3月11日前,俄罗斯服务器和网域将被迁至俄罗斯本地。-白俄罗斯媒体NEXTA披露的俄罗斯政府文件并未明确称,俄罗斯将...

前端工程师都会喜欢的5个JavaScript库

本文由码农网– Sandbox Wang原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!前端开发应该算是整个Web应用开发过程中最有意思的一部分了,不管什么时候,你总能看到一些新的框架...

分享 JavaScript 2024 的 6 个新功能

JavaScript 在2024 年更新引入了 6个关键功能。从使文本和日期更易于处理,到程序等待和协同工作的新方法,甚至使模式更容易查找。我们一起来看看吧!01、格式正确的 Unicode 字符串格...

Linux History命令:如何显示命令执行的日期和时间

在Linux系统中,history命令是一个简单却强大的工具,它允许用户查看和重用之前执行过的命令。然而,默认情况下,history命令的输出仅显示命令的序号和内容,并不包含命令执行的日期和时间。这对...

脸书再面临“隐私”考验 问答应用泄露用户信息

据美国“侨报网”7月3日报道,脸书上一个专门回答“你最像哪位迪士尼公主”等问题的问答应用程序被爆泄露了约1.2亿用户的个人信息。据美国福克斯新闻报道,来自Nametests网站的第三方问答应用程序以不...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。