栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

在JavaScript中用date-fns管理日期和时间[图]

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在JavaScript中用date-fns管理日期和时间[图]

在Javascript中使用日期和时间不是一件容易的事。这就是为什么在许多app的package.json文件中可以看到像Moment.js这种类库。

Moment.js是最流行的日期管理类库之一,有了它web工程师可以方便地解析,格式化和计算日期。

不过近期Moment.js在官网发布了公告,正式宣布项目进入维护状态,甚至可能不再修复发现的bug。

那么问题来了:我们还有哪些其他选择呢?

Moment.js开发团队推荐了几个类库,其中一个便是date-fns。date-fns被认为是一个优秀的替代品,不只是因为它提供了同样丰富的功能,此外它遵循函数式编程规范,也是一大优势。

安装date-fns

你可以使用npm/Yarn安装date-fns:

格式化日期

格式化日期是像Moment.js/date-fns这类库的基础功能。这是因为Javascript没有内置的方法来解决这个问题。

date-fns使用了和Moment.js类似的字符串模式:

就这么简单。它支持许多日期格式,可以在官方文档上查阅。

增加/减少日期

现在我们可以格式化日期了,该怎么对日期应用加法和减法呢?有几个函数可以帮我们完成这个任务:

addDays

subDays

addWeeks

subWeeks

addMonths

subMonths

在下面的例子中,我们为指定日期增加1年:

日期本地化

格式化日期很容易,但是如何本地化日期呢?我们都知道访问网站的访客可能来自世界各地,我们不能要求他们都和我们的语言一样。

Javascript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是作为开发Web页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,Javascript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

Javascript在1995年由Netscape公司的BrendanEich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为Javascript。但实际上它的语法风格与Self及Scheme较为接近。书笔记网https://www.yuananren.com编程语言Javascript的标准是ECMAscript。截至2012年,所有浏览器都完整的支持ECMAscript5.1,旧版本的浏览器至少支持ECMAscript3标准。2015年6月17日,ECMA国际组织发布了ECMAscript的第六版,该版本正式名称为ECMAscript2015,但通常被称为ECMAscript6或者ES6。

对于这个需求,可以导入指定的本地化插件:

对比两个日期

对比两个日期的功能对于一个日期类库来说至关重要。date-fns提供了几个函数来做这件事。

例如,我们可以计算从1月1日到圣诞节的自然日天数以及工作日天数:

date-fns体积小巧

Moment.js被饱受诟病的一点是它庞大的体积。没办法导入单独的函数,因为它的API只允许链式调用。这意味着你需要导入整个库:

而在date-fns中,你只需要导入所需的函数即可:

这么做的好处是date-fns的依赖包比Moment.js更小,下图展示了两者的区别:

结语

随着Moment.js的落幕,date-fns正受到越来越多的关注,日常开发也比较活跃。它丰富的功能以及对于ES6的良好支持,值得你在下一个项目中尝试一下它!


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/243746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号