首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >前端时间处理库-Day.js与Moment.js

前端时间处理库-Day.js与Moment.js

作者头像
JanYork_简昀
发布2022-08-29 15:05:27
发布2022-08-29 15:05:27
3.6K0
举报
文章被收录于专栏:小简技术栈小简技术栈

偶然遇到一些需求,需要计算时间差或者处理时间,格式化,转换等等。

那大名鼎鼎的两个时间库不多说了,在标题,非常强大。

Day.js

Day.js官网

Day.js比较轻量,所以在我刚接触需要处理时间的需求中,我首先选择了Day.js,但是我还是用着不是很舒服,可能语法问题,也可以体验感问题,反正就是不太喜欢。

但是这个库无疑非常优秀,为什么呢?

我们上面提到了Moment.js,那这两个库比如是有竞争选择。

Moment.js也是占用资源比Day.js大了些许了。

代码语言:javascript
复制
 import dayjs from "dayjs";
 
 dayjs(new Date(2021, 10, 1)).diff(new Date(2021, 9, 17), "day"); 

稍微看看语法,Day.js还要许许多多的功能呢。

比如,想获取时间差,可以用Day.js的插件RelativeTime

代码语言:javascript
复制
 import dayjs from "dayjs";
 import relativeTime from "dayjs/plugin/relativeTime";
 
 dayjs.extend(relativeTime);
 
 dayjs("2022-09-16 13:28:55").fromNow();

Moment.js

Moment.js官网

是的,我最后还是喜欢选择Moment.js,语法写起来也顺手,虽然占用资源较大,但是功能也是比Day.js多了许多。

首先看看官网界面:

给人的感觉就是强大、精准、数据量也是非常之多。

语法我也是比较喜欢的,比如格式化时间:

代码语言:javascript
复制
 moment().format('MMMM Do YYYY, h:mm:ss a'); // 八月 9日 2022, 2:34:03 下午
 moment().format('dddd');                    // 星期二
 moment().format("MMM Do YY");               // 8月 9日 22
 moment().format('YYYY [escaped] YYYY');     // 2022 escaped 2022
 moment().format();                          // 2022-08-09T14:34:03+08:00

还要太多功能我就不一一演示了,反正非常强大就对了,但Day.js也不弱。

对比一下

bundlephobia.com也是提供了资源占用的ApiDay.js如下:

Moment.js如下:

这样一对比,所以说,day.js是更现代并且更轻量化,更加容易扩展的一个库,但是需要强大的时间处理,我还是喜欢Moment.js

Day.js它可以利用TreeShaking,并且通过插件的方式来进行扩展,我们可以根据自己的需求去引入插件,所以我们最后只会引入我们需要的东西。

至于Moment.js支不支持TreeShaking,我记得好像是不支持的吧,应该、大概、或许...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 08 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Day.js
  • Moment.js
  • 对比一下
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档