关于javascript:前端时间Dayjs

9次阅读

共计 2670 个字符,预计需要花费 7 分钟才能阅读完成。

选型

  • Moment.js
    功能强大、应用宽泛、中文文档详尽。不再保护,体积大,官网不举荐新我的项目应用。
  • Luxon
    是由 Moment.js 的原开发者编写。没有中文文档。材料少。star 数量:13.6K
  • Date-fns
    反对 Tree shaking,能够依据须要进行按需引入。没有中文文档,材料少。star 数量:31.1K
  • Day.js
    是一个轻量级的 JavaScript 日期库,提供了相似 Moment.js 的 API,并且体积更小。它反对链式操作、格式化和持续时间计算。Day.js 还提供了插件零碎,能够依据须要扩大其性能。有中文文档。star 数量:42.4K

Day.js 罕用 API

let dayjs = require('dayjs')

// 1 format 格式化工夫
console.log(dayjs('2018-04-04T16:00:00.000Z').format('YYYY-MM-DD HH:mm:ss'), 'format-format-format-format')

// 2 isValid 校验是否是一个非法的日期
var customParseFormat = require('dayjs/plugin/customParseFormat')
console.log(dayjs('2022-01-33').isValid(), '非严格 isValid')
console.log(dayjs('xxx').isValid(), '非严格 isValid')
dayjs.extend(customParseFormat)
console.log(dayjs('2022-02-31', 'YYYY-MM-DD', true).isValid(), '严格 isValid')

// 3 day 获取或设置星期几。传入 number 从 0(星期天) 到 6(星期六)。如果超出这个范畴,它会进位到其余周。console.log(dayjs().day(), '获取明天是周几')
console.log(dayjs().day(3).format('YYYY-MM-DD'), '设置为周几')

// 4 add 几天后
console.log(dayjs().add(7, 'day').format('YYYY-MM-DD'), '几天后')

// 5 locale 实例扭转语言 dayjs 默认将一周的第一天是周日 周六是最初一天 将 'zh-cn' 作为参数传进去默认遵循中国地区
require('dayjs/locale/zh-cn')
console.log(dayjs().locale('zh-cn').startOf('week').format('YYYY-MM-DD'), 'startOf-startOf-startOf')
console.log(dayjs().startOf('week').format('YYYY-MM-DD'), 'startOf-startOf-startOf')

// 6 fromNow 间隔当初相差多长时间
var relativeTime = require('dayjs/plugin/relativeTime')
dayjs.extend(relativeTime)
console.log(dayjs('1999-01-01').fromNow(true), 'fromNow-fromNow-fromNow')

// 7 diff 返回指定单位下两个日期工夫之间的差别。const diffDate1 = dayjs('2019-01-25')
const diffDate2 = dayjs('2018-06-05')
console.log(diffDate1.diff(diffDate2, 'month'), 'Difference-Difference-Difference')

// 8 valueOf 毫秒级工夫戳
console.log(+dayjs('2019-01-25').valueOf(), 'Unix-Unix-Unix')

// 9 daysInMonth 月份中天数
console.log(dayjs('2019-02').daysInMonth(), 'daysInMonth-daysInMonth-daysInMonth')

// 10 toObject 返回蕴含工夫信息的 Object。var toObject = require('dayjs/plugin/toObject')
dayjs.extend(toObject)
console.log(dayjs('2023-03-06').toObject(), 'toObject-toObject-toObject')

// 11 isBefore Day.js 对象是否在另一个提供的日期工夫之前。console.log(dayjs('2010').isBefore(dayjs('2011')), 'isBefore-isBefore-isBefore')

// 12 isBetween 示意 Day.js 对象是否在其余两个的日期工夫之间。var isBetween = require('dayjs/plugin/isBetween')
dayjs.extend(isBetween)
console.log(dayjs('2010-10-18').isBetween('2010-10-19', dayjs('2010-10-25')), 'isBetween-isBetween-isBetween')

// 13 dayOfYear 示意 Dayjs 的日期是年中第几天,或设置成是年中第几天。var dayOfYear = require('dayjs/plugin/dayOfYear')
dayjs.extend(dayOfYear)
console.log(dayjs('2023-03-06').dayOfYear(), 'dayOfYear-dayOfYear-dayOfYear')
console.log(dayjs('2023').dayOfYear(65).format('YYYY-MM-DD'), 'dayOfYear-dayOfYear-dayOfYear')

// 14 QuarterOfYear 减少了 .quarter() API 返回以后实例是哪个季度
var quarterOfYear = require('dayjs/plugin/quarterOfYear')
dayjs.extend(quarterOfYear)

console.log(dayjs('2023-03-06').quarter())

正文完
 0