发布于 2026-01-06 8 阅读
0

DayJS:一款出色的轻量级现代日期 API,是 MomentJS 的替代方案。

DayJS:一款出色的轻量级现代日期 API,是 MomentJS 的替代方案。

概念

DayJS 是一个轻量级的 JavaScript 日期 API(2kB),它与 MomentJS API 的功能相同。(如果您使用 Moment.js,则可以轻松使用 Day.js。)

Day.js 是一个极简而简单的库,用于解析、验证、操作和显示现代浏览器中的日期和时间。

为什么 DayJS 取代 MomentJS

图像

图像

摇树优化:Moment 与现代“摇树优化”算法配合不佳,因此往往会增加 Web 应用程序包的大小。

可变性:请注意,Moment 对象是可变的。将 Moment 改为不可变会对所有使用它的项目造成破坏性变更。

开始使用

安装

npm install dayjs
Enter fullscreen mode Exit fullscreen mode
import dayjs from 'dayjs' // ES 2015
Enter fullscreen mode Exit fullscreen mode

解析

now = dayjs();
d = dayjs('2013-03-01', 'YYYY-MM-DD');
d = dayjs('2018-04-04T16:00:00.000Z') // ISO
d = dayjs(1318781876406) // Javascript timestamps -- Millis
d = dayjs.unix(1318781876) // Unix timestamps
d = new Date(2018, 8, 18) // Date object
d = dayjs({ years:2010, months:3, date:5, hours:15, minutes:10, seconds:3, milliseconds:123});
Enter fullscreen mode Exit fullscreen mode

格式

d.format()            // "2013-03-01T00:00:00+01:00"
d.format('dddd')      // "Friday"
d.format('MMM Do YY') // "Mar 1st 13"
d.fromNow()           // "7 years ago"
d.calendar()          // "03/01/2013"
Enter fullscreen mode Exit fullscreen mode

获取/设置

dayjs().second() // => new Date().getSeconds()
dayjs().second(30).valueOf() // => new Date().setSeconds(30)

dayjs().hour()
dayjs().hour(12)
Enter fullscreen mode Exit fullscreen mode

操作(加减)

d.add(1, 'day')
d.subtract(2, 'days')
d.startOf('day')
d.endOf('day')
d.startOf('hour')
Enter fullscreen mode Exit fullscreen mode

询问

d.isBefore(dayjs('2011-01-01'))
d.isSame(dayjs('2011-01-01'))
d.isAfter(dayjs('2011-01-01'))
Enter fullscreen mode Exit fullscreen mode

捆绑恐惧症

替代文字

替代文字

关联

文章来源:https://dev.to/javidjms/dayjs-awesome-lightweight-modern-date-api-and-an-alternative-to-momentjs-49lf