Day.js使用

5,237 阅读3分钟

1. Day.js 简介

与Moment.js 一样,Day.js 是一个轻量的处理时间和日期的 JavaScript 库,两者的API 设计保持完全一样,只要你会Moment.js,那么你就会Day.js

特点:

  • 和 Moment.js 相同的 API 和用法
  • 不可变数据 (Immutable)
  • 支持链式操作 (Chainable)
  • 仅 2kb 大小的微型库
  • 全浏览器兼容

2. 使用

  • 安装

npm install dayjs --save
import dayjs from 'dayjs'
  • 解析

  1. 不带参数调用dayjs() 将返回一个新的Day.js对象,其中包含当前日期和时间。所有的dayjs对象都是不可变的
dayjs()  //返回当前时间
  1. 字符串 以ISO 8601格式解析给定字符串并返回day.js对象实例。
dayjs('2018-04-04')
  1. Unix时间戳(毫秒) 通过一个毫秒数的整数值来创建Day.js 注:时间戳必须为数字格式
dayjs(1650767260745)
  1. 克隆
const a = dayjs()
const b = a.clone() //利用clone()进行克隆
const c = dayjs(a)  //利用dayjs对象上调用dayjs()进行克隆
  1. 验证 判断一个dayjs对象是否包含有效日期
dayjs().isValid()  //true or false
  • 取值/赋值

  1. 毫秒
dayjs().millisecond()  //当前毫秒
dayjs().millisecond(1)  //设置毫秒为1时dayjs对象
dayjs().second()  //当前秒
dayjs().second(1)  //设置秒为1时dayjs对象
  1. 分钟
dayjs().minute()  //当前分钟
dayjs().minute(1)  //设置分钟为1时dayjs对象
  1. 小时
dayjs().hour()  //当前小时
dayjs().hour(1)  //设置小时为1时dayjs对象
dayjs().date()  //当前几号
dayjs().date(1)  //设置当前月份天数为1时dayjs对象
  1. 星期 (取值为0-6,0周天,6周六 )
dayjs().day()  //当前周几
dayjs().day(1)  //设置本周一时dayjs对象
  1. 月 (取值为0-11, 0一月,11十二月)
dayjs().month()  //当前月份
dayjs().month(1)  //设置当前年的2月时dayjs对象
dayjs().year()  //当前年份
dayjs().year(2020)  //设置年份2020年当前时间时dayjs对象
  • 操作

  1. 增加
dayjs().add(7,'day')  //在当前基础上往后推7天
  1. 减少
dayjs().subtract(1,'year')  //在当前基础上往前减少一年
  1. 开始/结束时间
dayjs().startOf('month')  //本月第一天初始时间 Sun Apr 24 2022 00:00:00 GMT+0800 (China Standard Time)
dayjs().endOf('month')  //本月最后一天结束时间 Sat Apr 30 2022 23:59:59 GMT+0800 (China Standard Time)
  • 显示

  1. 格式化
dayjs().format() //'2022-04-24T11:43:05+08:00'
dayjs().format('YYYY--MM DD')  //'2022--04 24'
dayjs().format('[自定义内容] +YYYY-MM-DD HH:mm:ss')  //'自定义内容 +2022-04-24 11:45:41'
  1. Unix时间戳
dayjs().valueOf()  //毫秒时间戳
dayjs().Unix()  //秒时间戳
  1. 获取当月天数
dayjs().daysInMonth() //30
  1. 转Date(原生Date对象)
dayjs().toDate()  //Sun Apr 24 2022 11:49:03 GMT+0800 (China Standard Time)
  1. 转JSON
dayjs().toJSON()  //'2022-04-24T03:49:29.718Z'
  1. 转字符串
dayjs().toString()  //'Sun, 24 Apr 2022 03:49:58 GMT'
  1. 转ISO 8601字符串
dayjs().toISOString()  //'2022-04-24T03:51:24.088Z'