什么是day.js
Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间。
下载引入
npm install dayjs
页面单独引入
import dayjs from 'dayjs'
dayjs()等价于dayjs(Date.now())、dayjs(new Date())
dayjs().format()格式化
console.log('dayjs()',dayjs());
console.log('dayjs().format()',dayjs().format());
format()内部可以添加相关的格式
一般都是dayjs().format("YYYY-MM-DD")转换为当前的年月日
也可以添加具体时间分秒
dayjs().format('YYYY-MM-DD'); // 初始化日期
dayjs().format('YYYY-MM-DD HH:mm:ss'); // 初始化日期时间
标识 | 示例 | 描述 |
---|---|---|
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 | 秒,两位数 |
S | 0-9 | 毫秒(十),一位数 |
SS | 00-99 | 毫秒(百),两位数 |
SSS | 000-999 | 毫秒,三位数 |
Z | -05:00 | UTC 的偏移量,±HH:mm |
ZZ | -0500 | UTC 的偏移量,±HHmm |
A | AM / PM | 上/下午,大写 |
a | am / pm | 上/下午,小写 |
Do | 1st... 31st | 月份的日期与序号 |
时间的加减(经常使用)
dayjs().add / dayjs().subtract
代表在当前时间上去加减;dayjs(value).add / dayjs(value).subtract
代表在指定时间(value)上去加减;
dayjs().add(7, 'day').format('YYYY-MM-DD'); // 2023-02-23 今天(2022-02-16)加上7天
dayjs().add(1, 'month').format('YYYY-MM-DD'); // 2022-03-16 今天(2022-02-16)加上一月
dayjs().subtract(2, 'year').format('YYYY-MM-DD'); // 2021-02-16 今天(2023-02-16)减去2年
dayjs().subtract(2, 'hour').format('YYYY-MM-DD HH:mm:ss'); // 2023-02-16 14:27:39 今天现在(22023-02-16 16:27:39)减去2小时
时间的转换
// 下面毫秒数代表:2023-02-16 16:30:20
const timestr = 1690447800731; // 毫秒值必须是number类型,如果是string,结果可能和你想的不一样
console.log('将毫秒转为年-月-日 时:分:秒', dayjs(timestr).format('YYYY-MM-DD HH:mm:ss'));
console.log('获取年', dayjs(timestr).year()); //
console.log('获取月', dayjs(timestr).month());
console.log('获取天', dayjs(timestr).date());
console.log('获取时', dayjs(timestr).hour());
console.log('获取分', dayjs(timestr).minute());
将后台传递的时间拼接转换为YYYY-MM-DD格式可以转换为时间戳进而进行数据操作
获取时间的具体写法:持续补充。。
//1.获取当前时间
dayjs().format("YYYY-MM-DD")
//2.获取7天前时间
dayjs().subtract(7,'day').format("YYYY-MM-DD")
//3.获取7天后的时间
dayjs().add(7,'day').format("YYYY-MM-DD")
//4.获取上个月底的时间
dayjs().suntract(1,'month').endOf('month').format('YYYY-MM-DD')
//也可以写成本月初时间减掉一天
//5.本月底时间
dayjs().endOf('month').format('YYYY-MM-DD')