💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# dayjs [官网](https://dayjs.gitee.io/zh-CN/) Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js ### format()方法 ```js dayjs().format("YYYY-MM-DD hh:mm:ss a") // 2021-04-13 01:48:00 pm dayjs().format("YYYY-MM-DD HH:mm:ss") // 2021-04-13 13:48:00 dayjs().format("YY-M-D H:m:s") // 21-4-13 13:48:0 dayjs().format("YY-M-D h:m:s a") // 21-4-13 1:48:0 pm ``` | 占位符 | 输出 | 详情 | | --- | --- | --- | | `YY` | 18 | 两位数的年份 | | `YYYY` | 2018 | 四位数的年份 | | `M` | 1-12 | 月份,从 1 开始 | | `MM` | 01-12 | 月份,两位数 | | `MMM` | Jan-Dec | 缩写的月份名称 | | `MMMM` | January-December | 完整的月份名称 | | `D` | 1-31 | 月份里的一天 | | `DD` | 01-31 | 月份里的一天,两位数 | | `d` | 0-6 | 一周中的一天,星期天是 0 | | `dd` | Su-Sa | 最简写的星期几 | | `ddd` | Sun-Sat | 简写的星期几 | | `dddd` | Sunday-Saturday | 星期几 | | `H` | 0-23 | 小时 | | `HH` | 00-23 | 小时,两位数 | | `h` | 1-12 | 小时, 12 小时制 | | `hh` | 01-12 | 小时, 12 小时制, 两位数 | | `m` | 0-59 | 分钟 | | `mm` | 00-59 | 分钟,两位数 | | `s` | 0-59 | 秒 | | `ss` | 00-59 | 秒 两位数 | | `SSS` | 000-999 | 毫秒 三位数 | | `Z` | +05:00 | UTC 的偏移量,±HH:mm | | `ZZ` | +0500 | UTC 的偏移量,±HHmm | | `A` | AM PM | | | `a` | am pm | ## 插件 ```js // 加载语言文件 require("dayjs/locale/zh-cn"); dayjs.locale('zh-cn') // 全局使用 dayjs().locale('zh-cn').format() // 当前实例使用 varcustomParseFormat = require("dayjs/plugin/customParseFormat"); dayjs.extend(customParseFormat); varrelativeTime = require("dayjs/plugin/relativeTime"); dayjs.extend(relativeTime); ``` ### Time from now 返回现在到当前实例的相对时间。 ```js dayjs.extend(relativeTime) dayjs('1999-01-01').fromNow() // 22 年前 dayjs.extend(relativeTime) dayjs('1999-01-01').fromNow(true) // 22 年 dayjs.extend(relativeTime) var a = dayjs('2000-01-01') dayjs('1999-01-01').from(a) // 1 年前 ``` ### Time to now 返回当前实例到现在的相对时间。 ```js dayjs.extend(relativeTime) dayjs('1999-01-01').toNow() // 22 年后 dayjs.extend(relativeTime) dayjs('1999-01-01').toNow(true) // 22 年 dayjs.extend(relativeTime) var a = dayjs('2000-01-01') dayjs('1999-01-01').to(a) // 1 年后 ``` | 范围 | 键值 | 示例输出 | | --- | --- | --- | | 0 到 44 秒 | s | 几秒前 | | 45 到 89 秒 | m | 1 分钟前 | | 90 秒 到 44 分 | mm | 2 分钟前 ... 44 分钟前 | | 45 到 89 分 | h | 1 小时前 | | 90 分 到 21 小时 | hh | 2 小时前 ... 21 小时前 | | 22 到 35 小时 | d | 1 天前 | | 36 小时 到 25 天 | dd | 2 天前 ... 25 天前 | | 26 到 45 天 | M | 1 个月前 | | 46 天 到 10 月 | MM | 2 个月前 ... 10 个月前 | | 11 月 到 17 月 | y | 1 年前 | | 18 月以上 | yy | 2 年前 ... 20 年前 | ### Days in Month 获取当前月份包含的天数。 ~~~js dayjs('2019-01-25').daysInMonth() // 31 ~~~ ### As Object 返回包含时间信息的 Object。 ``` dayjs.extend(toObject) dayjs('2019-01-25').toObject() /* { years: 2019, months: 0, date: 25, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 } */ ``` ### IsToday IsToday 增加了`.isToday()`API 来判断当前 Day.js 对象是否是今天。 ~~~js var isToday = require('dayjs/plugin/isToday') dayjs.extend(isToday) dayjs().isToday() // true ~~~ ### IsTomorrow IsTomorrow 增加了`.isTomorrow()`API 来判断当前 Day.js 对象是否是明天。 ~~~js var isTomorrow = require('dayjs/plugin/isTomorrow') dayjs.extend(isTomorrow) dayjs().add(1, 'day').isTomorrow() // true ~~~ ### IsYesterday IsYesterday 增加了`.isYesterday()`API 来判断当前 Day.js 对象是否是昨天。 ~~~js var isYesterday = require('dayjs/plugin/isYesterday') dayjs.extend(isYesterday) dayjs().add(-1, 'day').isYesterday() // true ~~~ ### IsoWeeksInYear IsoWeeksInYear 增加了`.isoWeeksInYear()`API 返回一个`number`来得到依据 ISO week 标准一年中有几周 > 使用本功能需先配置[`IsLeapYear`](https://dayjs.gitee.io/docs/zh-CN/plugin/is-leap-year)插件,才能正常运行 ~~~javascript var isoWeeksInYear = require('dayjs/plugin/isoWeeksInYear') var isLeapYear = require('dayjs/plugin/isLeapYear') // dependent on isLeapYear plugin dayjs.extend(isoWeeksInYear) dayjs.extend(isLeapYear) dayjs('2004-01-01').isoWeeksInYear() // 53 dayjs('2005-01-01').isoWeeksInYear() // 52 ~~~ ### Add 返回**增加**一定时间的复制的 Day.js 对象。 ~~~js dayjs().add(7, 'day') ~~~ 各个传入的单位对大小写不敏感,支持缩写和复数。 请注意,缩写是区分大小写的。 支持的单位列表 | 单位 | 缩写 | 详情 | | --- | --- | --- | | `day` | `d` | 星期几 (星期天0,星期六6) | | `week` | `w` | Week of Year | | `month` | `M` | 月份 (一月 0, 十二月 11) | | `quarter` | `Q` | 季度 ( 依赖[`QuarterOfYear`](https://dayjs.gitee.io/docs/zh-CN/plugin/quarter-of-year)插件 ) | | `year` | `y` | Year | | `hour` | `h` | Hour | | `minute` | `m` | Minute | | `second` | `s` | Second | | `millisecond` | `ms` | Millisecond | 或者,也可以给 Day.js 对象增加一个[持续时间](https://dayjs.gitee.io/docs/zh-CN/durations/durations)。 ~~~js dayjs().add(dayjs.duration({'days' : 1})) ~~~ ### Subtract (用法通Add) 返回**减去**一定时间的复制的 Day.js 对象。 ~~~js dayjs().subtract(7, 'year') ~~~ 各个传入的单位对大小写不敏感,支持缩写和复数。