js时间插件Dayjs相对Momentjs的优势

js时间插件Dayjs相对Momentjs的优势js 时间插件 Day js 和 Moment js 区别昨天发了一些插件的汇总 在评论中有个网友建议把 Moment js 换成 Day js 今天特意去学习了 Day js 发现比 Moment js 强大很多首先看一下 Day js 的官网及对 Day js 的介

大家好,欢迎来到IT知识分享网。

js时间插件Day.js和Moment.js区别

昨天发了一些插件的汇总,在评论中有个网友建议把Moment.js换成Day.js,今天特意去学习了Day.js,发现比Moment.js强大很多

首先看一下Day.js的官网及对Day.js的介绍

js时间插件Dayjs相对Momentjs的优势

Day.js官网: https://dayjs.gitee.io/zh-CN/

简单地说,只要你会Moment.js,那么你就会Day.js! Moment.js 的大小是200多k,Day.js的大小是2kB!大小有100倍的差距,却拥有同样强大的 API

接下来来了解一下Day.js

安装

npm install dayjs --save

使用

import dayjs from 'dayjs' // 或者 CommonJS // var dayjs = require('dayjs'); dayjs().format();

国际化

Day.js 支持几十个国家语言 但除非手动加载,多国语言默认是不会被打包到工程里的 你可以随意在各个语言之间自由切换:

import dayjs from 'dayjs' import relativeTime from 'dayjs/plugin/relativeTime' // 引入相对时间 import 'dayjs/locale/zh-cn' // 按需加载中文 dayjs.locale('zh-cn') // 按需加载中文 dayjs.extend(relativeTime ) // 引入相对时间 export default { data () { return { oldTime: '2020-12-10 12:30:00', newTime: null } }, methods: { getTime () { this.newTime = dayjs().format('YYYY-MM-DD HH:mm:ss') } }, created () { this.getTime() console.log(dayjs().format(dayjs(this.oldTime))) } }

打印结果为

10 分钟内

你也可以不用开始就加载,可以局部指定语言,比如

dayjs('2019-12-09').locale('zh-cn').format()

API

还有很多API可用:

· 当前时间

dayjs()

· 时间字符串

dayjs(‘2018-06-03’)

· 时间戳

dayjs(84)

· Date 对象

dayjs(new Date(2018,8,18))

· 复制

dayjs().clone()

· 检测当前 Dayjs 对象是否是一个有效的时间

dayjs().isValid()

· 获取

年 : dayjs().year()

月 : dayjs().month()

日 : dayjs().date()

星期 : dayjs().day()

时 : dayjs().hour()

分 : dayjs().minute()

秒 : dayjs().second()

毫秒 : dayjs().millisecond()

· 设置

dayjs().set(‘year’,2017)

dayjs().set(‘month’,9)

· 增加时间并返回一个新的 Dayjs() 对象

dayjs().add(7, ‘day’)

dayjs().add(7, ‘year’)

· 减少时间并返回一个新的 Dayjs() 对象

dayjs().subtract(7, ‘year’)

dayjs().subtract(7, ‘month’)

· 返回当前时间的开头时间的 Dayjs() 对象,如月份的第一天。

dayjs().startOf(‘year’)

dayjs().startOf(‘month’)

· 返回当前时间的末尾时间的 Dayjs() 对象,如月份的最后一天。

dayjs().endOf(‘month’)

dayjs().endOf(‘year’)

· 格式化

dayjs().format()

dayjs().format(‘YYYY-MM-DD dddd HH:mm:ss.SSS A’)

· 时间差

dayjs(‘2018-06-08’).diff(dayjs(‘2017-06-01′),’years’)

dayjs(‘2018-06-08’).diff(dayjs(‘2017-06-01′),’day’)

dayjs(‘2018-06-08’).diff(dayjs(‘2017-06-01′),’hour’)

· Unix 时间戳 (毫秒)

dayjs().valueOf()

· Unix 时间戳 (秒)

dayjs().unix()

· 返回月份的天数

dayjs().daysInMonth()

· 返回原生的 Date 对象

dayjs().toDate()

· 返回包含时间数值的数组

dayjs().toArray()

· 当序列化 Dayjs 对象时,会返回 ISO8601 格式的字符串

dayjs().toJSON() //2018-06-08T02:44:30.599Z

· 返回 ISO8601 格式的字符串

dayjs().toISOString() //2018-06-08T02:46:06.554Z

· 返回包含时间数值的对象

dayjs().toObject()

· 字符串

dayjs().toString()

· 检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之前

dayjs(‘2018-06-01’).isBefore(dayjs(‘2018-06-02’))

· 检查一个 Dayjs 对象是否和另一个 Dayjs 对象时间相同

dayjs().isSame(dayjs())

· 检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之后

dayjs().isAfter(dayjs())

插件

这个就感觉特别好,按需使用自己需要的插件,官方提供了很多插件,这里列举几个常用的插件

· AdvancedFormat 扩展了 dayjs().format API 以支持更多模版

· RelativeTime 增加了 .from .to .fromNow .toNow 4个 API 来展示相对的时间 (e.g. 3 小时以前)

· IsLeapYear 增加了 .isLeapYear API 返回一个 boolean 来展示一个 Dayjs’s 的年份是不是闰年

· WeekOfYear 增加了 .week() API 返回一个 number 来表示 Dayjs 的日期是年中第几周

· IsSameOrAfter 增加了 .isSameOrAfter() API 返回一个 boolean 来展示一个时间是否和一个时间相同或在一个时间之后

· IsSameOrBefore 增加了 .isSameOrBefore() API 返回一个 boolean 来展示一个时间是否和一个时间相同或在一个时间之前

而且还可以自己编写插件,来看官方给的介绍

js时间插件Dayjs相对Momentjs的优势

最后附上gitHub地址,目前有32.7K的star

gitHub地址:https://github.com/iamkun/dayjs

js时间插件Dayjs相对Momentjs的优势

最后欢迎大家来纠错、提建议,一起学习!

如果对你有帮助,可以转发/收藏,点个赞给个支持一下吧~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/187237.html

(0)
上一篇 2025-09-01 07:15
下一篇 2025-09-01 07:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信