Day.js使用小记


  1. 什么是Day.js?

    Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果你曾经用过 Moment.js, 那么您已经知道如何使用 Day.js

    从API上来看,Moment.js和Day.js的常用API基本一致,Moment.js里面包含的API较全,但常用API如果基本可以满足我们的开发需要,Day.js如需要其他API,可安装插件来实现。

    从体积大小来看,Moment.js的体积大概200多KB,Day.js的体积只有20KB。

    选择哪一个,可以根据实际情况来,我需要的只有常用的API,而且体积不能过大,所以选择了Day.js ,接下来我们可以看下常用时间处理操作。

    Day.js官方地址

  2. 怎么使用?

    • 格式化占位符

      占位符 输出 详情
      YY 20 两位数的年份
      YYYY 2020 四位数的年份
      M 1-12 月数,从1开始
      MM 01-12 月数,两位数
      MMMM Jan-Dec 缩写的月份名称
      MMMM January-December 完整的月份名称
      D 1-31 月份里的一天
      DD 01-31 月份里的一天,两位数
      d 0-6 一周中的一天
      dd Su-Sa 最简写的星期几
      ddd Sun-Sat 简写的星期几
      dddd Sunday-Saturday 星期几
      H 0-23 小时,24小时制
      HH 00-23 小时,24小时制,两位数
      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 上午/下午,小写

      本地格式化

      占位符 英语语音 示例输出
      LT h:mm A 8:02 PM
      LTS h:mm:ss A 8:02:18 PM
      L MM/DD/YYYY 08/16/2018

      常用时间格式化示例:

      首先需要在项目中引入Day.js

      1
      npm install dayjs --save

      1
      2
      3
      4
      5
      6
      7
      dayjs('2018-08-08').format('YYYY-MM-DD HH:mm')
      dayjs('2018-08-08').format('A LT')
      dayjs('2018-08-08').format('MM-DD HH:mm')
      dayjs('2018-08-08').format('YYYY-MM-DD HH:mm:ss')

      //GMT时间转换可能会出现14小时的误差,需要消除误差
      dayjs('Wed Jul 01 11:14:19 CST 2020').subtract(14, 'hour').format('YYYY-MM-DD HH:mm')
    • 查询方法

      isBefore 是否在另一个提供的日期时间之前

      isSame 否和另一个提供的日期时间相同

      isAfter 是否在另一个提供的日期时间之后

      示例:

      1
      dayjs(new Date).isAfter(dayjs('2018-08-08'))
    • 操作

      add 增加一定时间

      subtract 减少一定时间

      支持的单位格式如下:

      单位 缩写 详情
      day d
      week w
      month M
      quarter Q 季度
      year y
      hour h 小时
      minute m
      second s
      millisecond ms 毫秒

      使用示例:

      1
      ayjs().add(7, 'day')