一、Day.js 简介
与Moment.js 一样,Day.js 是一个轻量的处理时间和日期的 JavaScript 库,两者的API 设计保持完全一样,只要你会Moment.js,那么你就会Day.js
- 和 Moment.js 相同的 API 和用法
- 不可变数据 (Immutable)
- 支持链式操作 (Chainable)
- 仅 2kb 大小的微型库
- 全浏览器兼容
二、使用方式
1、安装
npm install dayjs
然后在项目代码中引入即可:
var dayjs = require('dayjs')
dayjs().format()
或者
import dayjs from 'dayjs' // ES 2015
main.js引入
import dayjs from 'dayjs';
Vue.prototype.$dayjs = dayjs;
API参考:
Dayjs 并没有改变或覆盖 Javascript 原生的 Date.prototype, 而是创造了一个全新的包含 Javascript Date 对象的 Dayjs 的对象。
Dayjs 对象是不可变的, 所有的 API 操作都将返回一个新的 Dayjs 对象。
API可支持链式调用
dayjs().startOf('month').add(1, 'day').set('year', 2018).format('YYYY-MM-DD HH:mm:ss');
三、常见用法
1. 获取当前时间戳
dayjs('2021-05-01 12:00:00').unix()
const endTime = dayjs(
dayjs(queryDate.endTime).format("YYYY-MM-DD HH:mm:ss")
).unix();
2.格式化时间
let time = 1627747199
const dateFormat = dayjs(time).format('YYYY-MM-DD HH:mm:ss')
console.log(dateFormat) // 2021-07-31 23:59:59
3.指定时间
获取上一个月15号 00:00:00 时间戳
dayjs()
.subtract(1, 'month')
.date(15)
.hour(0)
.minute(0)
.second(0)
.unix()
等同于
dayjs()
.subtract(1, 'month')
.date(15)
.startOf('day')
.unix()
获取明天早上 10:00:00 时间戳
const today = dayjs().date() // 获取今天几号
const tomorrow = dayjs().date(today + 1).hour(10).minute(0).second(0).unix()
获取当月14号 23:59:59
dayjs()
.date(14)
.hour(23)
.minute(59)
.second(59)
.<