dayjs时间处理库的基本使用
Posted 马飞飞X
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dayjs时间处理库的基本使用相关的知识,希望对你有一定的参考价值。
1获取当前时间
let a = dayjs()
2 时间格式化
let endTime = dayjs().format('YYYY-MM-DD')
3 获取当前时间之前的时间 day.js可以轻松获取N小时/天/月/年前等时间,如以下代码获取的是14天前的时间:
let startTime = dayjs().subtract(14,'day').format('YYYY-MM-DD')
4.N时间后
day.js也可以轻松获取N时间后的时间,如以下代码获取的是7天后的时间:
dayjs().add(7, 'day')
5.开始时间
day.js可以获取一月/一周等的开始时间,如以下代码获取本周第一天的时间(星期一):
dayjs().startOf('week')
6.末尾时间
day.js可以获取一月/一周等的末尾时间,如以下代码获取本月最后一天时间:
dayjs().endOf('month')
7.两个时间差
day.js可以获取两个不同时间的差,如2020-09-25和2020-06-05相差112天:
const date1 = dayjs('2020-09-25');
date1.diff('2020-06-05', 'day'); // 112
8.Unix 时间戳
day.js可以轻松转换秒级和毫秒级时间戳:
dayjs().unix(); //秒
dayjs().valueOf(); //毫秒
9.获取月份天数
day.js可以轻松获取一个月的天数是30天还是31天还是28或29天。
dayjs().daysInMonth() //30,(2020年9月共30天)
10.距离当前时刻
我们经常看到显示“1分钟前”、“3小时内”等时间转换后显示效果,dayjs也可以轻松实现:
dayjs('2020-09-27 18:22:32').fromNow(); //3小时前
dayjs('2020-09-26 10:22:32').toNow(); //1天内
fromNow()
表示距离当前时刻,toNow()
表示相对当前时刻,其实感觉意思差不多。
不过要想fromNow()
和toNow()
生效,需要使用插件 RelativeTime
,方法是先引入插件,再执行调用方法:
import relativeTime from 'dayjs/plugin/relativeTime';
dayjs.extend(relativeTime);
[moment][dayjs]使用的小小区别
moment 和 dayjs 是前端项目中常用的工具,项目里二者选一就可以了。
moment,dayjs在使用过程中的区别。
moment支持number类型直接转换为时间对象。
dayjs不支持number类型直接转换,必须用string类型
moment
将指定格式字符串/ 数字,解析为moment时间对象,它的包含了JS原生时间对象
(JS原生时间对象 -> Thu Apr 29 2021 10:06:58 GMT+0800 (中国标准时间))。
如 let a = 202009201423 (2020年9月20日 14:23) typeof(a) -> number
moment支持number类型直接转换
let dateObj = moment(a,”YYYYMMDDHHmm”); // moment date Object
转为时间戳
let timestamp = dateObj.valueOf(); // valueOf() 是JS的原生方法。
// let timestampBymoment = moment(a,”YYYYMMDDHHmm”).valueOf() //也可
转为指定格式的字符串,必须用moment( xxx ).format()。
moment(a,”YYYYMMDDHHmm”).format(“YYYY-MM-DD”);
moment(a,”YYYYMMDDHHmm”).valueOf().format(“YYYY-MM-DD”);
moment支持moment时间对象转指定格式。
也支持原生时间对象转指定格式。
还支持时间戳转指定格式。
dayjs
dayjs不支持number类型直接转换,必须用string类型
dayjs(a.toString(),”YYYYMMDDHHmm”)
注意: HH 是24小时制 hh是12小时制
同步发布于自己的语雀
https://www.yuque.com/diracke...
以上是关于dayjs时间处理库的基本使用的主要内容,如果未能解决你的问题,请参考以下文章