本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
Day.js :一个非常好用的轻量的处理时间和日期库
mylove136 · 826浏览 · 发布于2020-11-05 +关注

Day.js 是一个轻量的处理时间和日期的 JavaScript 库。平时项目中笔者也常用dayjs,它确实很好用。Day.js有着几乎和Moment.js一样的API,因此如果你用过Moment.js,那么也可以轻松使用Day.js。本文将讲解项目中最常用的时间日期处理方法。

此外,Moment.js目前维护升级不太明了,而Day.js始终在维护,并且Day.js只有2KB大小,比Moment.js小很多。我们一般在Vue项目中使用,当然实际它与你用什么框架无关。

安装

我们使用npm安装day.js。

npm install dayjs --save

然后使用import引入day.js。

import dayjs from 'dayjs'

使用

1.当前时间

想要获取当前时间,只需一句代码:

dayjs()

要想将时间格式化输出,可以使用format:

dayjs().format('YYYY-MM-DD HH:mm:ss')
2.解析时间戳

dayjs可以接收一个时间戳(毫秒)参数,并将其转换为时间格式:

dayjs(1601121636123).format('YYYY-MM-DD HH:mm:ss')
3.N时间前

day.js可以轻松获取N小时/天/月/年前等时间,如以下代码获取的是一个月前的时间:

dayjs().subtract(1, 'month')

代码中用来表示月份参数:month,可以换成其他表示不同的时间单位:year(年),month(月),day(日),hour(时),minute(分),second(秒),millisecond(毫秒),week(周)。

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);
11.中文本地化

如果要像上面输出“1分钟前”这样的中文内容,需要引入中文语言包:

import 'dayjs/locale/zh-cn';
dayjs.locale('zh-cn');

使用以上两句代码后,就可以愉快的输出中文了。

12.格式化时间

使用day.js的 format()可以轻松格式化你需要的时间格式了,如以下代码输出时间格式:2020-09-27 20:57:04

dayjs().format('YYYY-MM-DD HH:mm:ss')

以下表格是从官网摘录的支持时间格式单位:

格式输出描述
格式输出描述
YY19两位数年份
YYYY2019四位数年份
M1~12月份,从1开始
MM01~12月份,两位数
MMMJan~Dec简写的月份名称
MMMMJanuary-December完整的月份名称
D1~31月份里的一天
DD01~31月份里的一天,两位数
d0~6一周中的一天,星期天是0
ddSu~Sa最简写的一周中一天的名称
dddSun-Sat简写的一周中一天的名称
ddddSunday-Saturday一周中一天的名称
H0~23小时
HH00~23小时,两位数
h1~12小时,12小时制
hh01~12小时,12小时制,两位数
m0~59分钟
mm00~59分钟,两位数
s0~59
ss00~59秒,两位数
SSS000~999毫秒,三位数
Z+5:00UTC的偏移量
ZZ+500UTC 的偏移量,数字前面加上 0
AAM  PM
aam pm

Day.js的github项目地址: https://github.com/iamkun/dayjs


相关推荐

RN开发环境的npm私库本地debug调试

manongba · 698浏览 · 2019-05-09 17:03:46
你不知道的浏览器渲染原理

追忆似水年华 · 1373浏览 · 2019-05-09 22:47:56
基于iview的router常用控制方式

追忆似水年华 · 999浏览 · 2019-06-03 10:39:21
编程小知识之 JavaScript 文件读取

manongba · 717浏览 · 2019-06-10 09:16:16
10个省时间的 PyCharm 技巧 赶快收藏!

· 703浏览 · 2019-06-10 09:32:01
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页