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

简介: 偶然遇到一些需求,需要计算时间差或者处理时间,格式化,转换等等。那大名鼎鼎的两个时间库不多说了,在标题,非常强大。

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

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

Day.js

Day.js官网

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

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

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

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

import dayjs from "dayjs";
 dayjs(new Date(2021, 10, 1)).diff(new Date(2021, 9, 17), "day");

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

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

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多了许多。

首先看看官网界面:

网络异常,图片无法展示
|

网络异常,图片无法展示
|

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

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

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,我记得好像是不支持的吧,应该、大概、或许...

相关文章
|
13天前
|
JavaScript 前端开发 API
详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
该文章详细讲解了队列数据结构在前端开发中的应用,并深入探讨了JavaScript的事件循环机制,区分了宏任务和微任务的执行顺序及其对前端性能的影响。
|
11天前
|
JavaScript 前端开发 小程序
一小时入门Vue.js前端开发
本文是作者关于Vue.js前端开发的快速入门教程,包括结果展示、参考链接、注意事项以及常见问题的解决方法。文章提供了Vue.js的基础使用介绍,如何安装和使用cnpm,以及如何解决命令行中遇到的一些常见问题。
一小时入门Vue.js前端开发
|
14天前
|
存储 前端开发 JavaScript
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
本文介绍了JavaScript变量的声明和使用、标识符的命名规则、如何获取和操作HTML元素,以及JavaScript的鼠标事件处理,通过示例代码展示了这些基础知识点在实际开发中的应用。
29 2
前端基础(二)_JavaScript变量、JavaScript标识符、JavaScript获取元素、JavaScript的鼠标事件
|
5天前
|
开发框架 前端开发 JavaScript
React、Vue.js 和 Angular主流前端框架和选择指南
在当今的前端开发领域,选择合适的框架对于项目的成功至关重要。本文将介绍几个主流的前端框架——React、Vue.js 和 Angular,探讨它们各自的特点、开发场景、优缺点,并提供选择框架的建议。
23 6
|
14天前
|
存储 前端开发 JavaScript
前端基础(三)_JavaScript数据类型(基本数据类型、复杂数据类型)
本文详细介绍了JavaScript中的数据类型,包括基本数据类型(Number、String、Boolean、Undefined、Null)和复杂数据类型(Object),并解释了如何使用`typeof`操作符来识别变量的数据类型。同时,还讨论了对象、函数和数组等复杂数据类型的使用方式。
15 2
|
1天前
|
缓存 JavaScript 前端开发
JavaScript 库
JavaScript 库
7 0
|
2天前
|
JavaScript 前端开发 API
【前端基础篇】JavaScript之jQuery介绍
【前端基础篇】JavaScript之jQuery介绍
12 0
|
2天前
|
JavaScript 前端开发 UED
【前端基础篇】JavaScript之DOM介绍2
【前端基础篇】JavaScript之DOM介绍
9 0
|
2天前
|
JavaScript 前端开发 搜索推荐
【前端基础篇】JavaScript之DOM介绍1
【前端基础篇】JavaScript之DOM介绍
14 0
|
13天前
|
JavaScript 前端开发 开发者
深入浅出 Vue.js:构建响应式前端应用
Vue.js 是一个流行的前端框架,以其简洁、高效和易学著称。它采用响应式和组件化设计,简化了交互式用户界面的构建。本文详细介绍 Vue.js 的核心概念、基本用法及如何构建响应式前端应用,包括实例、模板、响应式数据和组件等关键要素,并介绍了项目结构、Vue CLI、路由管理和状态管理等内容,帮助开发者高效地开发现代化前端应用。