⽇期时间⼯具(dayjs )的使⽤
简介
Day.js 是⼀个轻量的处理时间和⽇期的 JavaScript 库,和 Moment.js 的 API 设计保持完全⼀样. 如果您曾经⽤过 Moment.js, 那么您已经知道如何使⽤ Day.js
安装
API
Dayjs  并没有改变或覆盖 Javascript 原⽣的 Date.prototype , ⽽是创造了⼀个全新的包含 Javascript Date  对象的 Dayjs  的对象。Dayjs  对象是不可变的, 所有的 API 操作都将返回⼀个新的 Dayjs  对象。
如果没有特别说明,Day.js 的返回值都是新的 Dayjs  对象。
解析
在 dayjs() 中传⼊⽀持的格式
当前时间
直接运⾏ dayjs(),得到包含当前时间和⽇期的 Dayjs  对象。
时间字符串
可以解析传⼊的⼀个标准的时间字符串。
Date 对象
可以解析传⼊的⼀个 Javascript Date 对象。
Unix 时间戳 (毫秒)
可以解析传⼊的⼀个 Unix 时间戳 (13 位数字)。
Unix 时间戳 (秒)
可以解析传⼊的⼀个 Unix 时间戳 (10 位数字)。
npm  install  dayjs --save
import
dayjs from  'dayjs'// 或者
CommonJS
// var dayjs = require('dayjs');dayjs ().format ()
dayjs
()
dayjs (String )dayjs ('1995-12-25')
dayjs
(Date )
dayjs (new  Date (2018, 8
, 18))
dayjs (Number )dayjs (1318781876406)
⾃定义时间格式
解析⾃定义时间格式如 dayjs("12-25-1995", "MM-DD-YYYY") 可以使⽤插件
复制
Dayjs  对象是不可变的,如果您想获得⼀个对象的拷贝,请执⾏ .clone()。
向 dayjs() ⾥传⼊⼀个 Dayjs  对象也能实现同样的效果。
验证
return Boolean
检测当前 Dayjs  对象是否是⼀个有效的时间。
获取+设置
获取和改变⽇期。
获取或设置年份。
获取或设置⽉份。从 0 开始
获取或设置⽇期。从 1 开始
星期
获取或设置星期。从星期天 0 开始
获取或设置⼩时。
dayjs
.unix (Number )dayjs .unix (1318781876
)
dayjs (Dayjs )dayjs
().clone ()
dayjs ().isValid
()
dayjs ().year ()dayjs ().year (2000
)
dayjs ().month ()dayjs ().month (0
)
dayjs ().date ()dayjs ().date (1
)
dayjs ().day ()dayjs ().day (0)
获取或设置分钟。
获取或设置秒。
毫秒
获取或设置毫秒。
获取
获取从 Dayjs  对象中取到的信息传⼊的单位 (unit) 对⼤⼩写不敏感。
可⽤单位
单位缩写
描述date ⽇期
day d 星期⼏ (星期天 0, 星期六 6)month
M ⽉ (⼀⽉ 0, ⼗⼆⽉ 11)
year y 年hour h 时
minute m 分second s 秒millisecond
ms
毫秒
设置
设置时间
dayjs ().hour ()dayjs ().hour (12
)
dayjs ().minute ()dayjs ().minute (59)
dayjs ().second ()dayjs ().second (1
)
dayjs ().millisecond ()dayjs ().millisecond (1)
dayjs ().get (unit : String )dayjs ().get ('month') // 从 0 开始dayjs ().get ('day')
dayjs ().set (unit : String , value : Int );dayjs ().set ('date', 1);
dayjs ().set ('month', 3); // 四⽉dayjs ().set ('second', 30);
操作
您可以对 Dayjs  对象如下增加减少之类的操作:
增加unix时间戳转换日期格式
增加时间并返回⼀个新的 Dayjs() 对象。
减少
减少时间并返回⼀个新的 Dayjs() 对象。
开头时间
返回当前时间的开头时间的 Dayjs() 对象,如⽉份的第⼀天。
末尾时间
返回当前时间的末尾时间的 Dayjs() 对象,如⽉份的最后⼀天。
显⽰
格式化 Dayjs  对象并展⽰。
格式化
return String
接收⼀系列的时间⽇期字符串并替换成相应的值。
详情如下:
格式输出描述YY 18两位数的年份YYYY 2018四位数的年份M
1-12
⽉份,从 1 开始
dayjs
()
.startOf ('month')  .add (1, 'day')  .subtract (1, 'year'
)
dayjs ().add (value : Number , unit : String );dayjs ().add (7, 'day'
);
dayjs ().subtract (value : Number , unit : String );dayjs ().subtract (7, 'year'
);
dayjs ().startOf (unit : String );
dayjs ().startOf ('week'
); // 取决于 locale ⽂件⾥ `weekStart` 的值
dayjs ().endOf (unit : String );dayjs ().endOf ('month'
);
dayjs ().format (String )
dayjs ('2019-01-25').format ('[YYYY] YYYY-MM-DDTHH:mm:ssZ[Z]') // 'YYYY 2019-01-25T00:00:00-02:00Z'dayjs ().format ('{YYYY} MM-DDTHH:mm:ssZ[Z]') // "{2014} 09-08T08:02:17-05:00Z"
MM 01-12⽉份,两位数MMM Jan-Dec 简写的⽉份名称MMMM January-December
完整的⽉份名称D 1-31⽉份⾥的⼀天DD 01-31⽉份⾥的⼀天,两位数d 0-6⼀周中的⼀天,星期天是 0dd Su-Sa 最简写的⼀周中⼀天的名称ddd Sun-Sat 简写的⼀周中⼀天的名称
dddd Sunday-Saturday
⼀周中⼀天的名称
H 0-23⼩时HH 00-23⼩时,两位数h 1-12⼩时, 12 ⼩时制hh 01-12Hours, 12 ⼩时制, 两位数
m 0-59分钟mm 00-59分钟,两位数
s 0-59秒ss 00-59秒 两位数SSS 000-999毫秒 三位数Z +5:00UTC 的偏移量
ZZ +0500UTC 的偏移量,数字前⾯加上 0
A AM PM a
am pm
格式输出描述更多格式化的选项 Q Do k kk X x ... 可以使⽤插件
本地化的长⽇期格式 L LT LTS ... 可以使⽤插件
时间差
return Number
获取两个 Dayjs  对象的时间差,默认毫秒。
Unix 时间戳 (毫秒)
return Number 返回 Unix 时间戳 (毫秒)
const  date1 = dayjs ('2019-01-25')const  date2 = dayjs ('2018-06-05')date1.diff (date2) // 20214000000date1.diff (date2, 'month') // 7
date1.diff (date2, 'month', true ) // 7.645161*********date1.diff (date2, 'day') // 233

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。