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

在JavaScript中使用日期和时间不是一件容易的事。这就是为何在许多app的package.json文件中能够看到像Moment.js这种类库。
Moment.js是最流行的日期管理类库之一,有了它web工程师能够方便地解析,格式化和计算日期。
不过近期Moment.js在官网发布了公告,正式宣布项目进入维护状态,甚至可能再也不修复发现的bug。
那么问题来了:咱们还有哪些其余选择呢?
Moment.js开发团队推荐了几个类库,其中一个即是date-fns。date-fns被认为是一个优秀的替代品,不仅是由于它提供了一样丰富的功能,此外它遵循函数式编程规范,也是一大优点。
在JavaScript中用date-fns管理日期和时间[图]
安装date-fns
你可使用npm/Yarn安装date-fns:
格式化日期
格式化日期是像Momentjs/date-fns这类库的基础功能。这是由于JavaScript没有内置的方法来解决这个问题。
date-fns使用了和Moment.js相似的字符串模式:
就这么简单。它支持许多日期格式,能够在官方文档上查阅。
增长/减小日期
如今咱们能够格式化日期了,该怎么对日期应用加法和减法呢?有几个函数能够帮咱们完成这个任务:
addDays
subDays
addWeeks
subWeeks
addMonths
subMonths
在下面的例子中,咱们为指定日期增长1年:
日期本地化
格式化日期很容易,可是如何本地化日期呢?咱们都知道访问网站的访客可能来自世界各地,咱们不能要求他们都和咱们的语言同样。
JavaScript(简称“JS”)是一种具备函数优先的轻量级,解释型或即时编译型的高级编程语言。虽然它是做为开发Web页面的脚本语言而出名的,可是它也被用到了不少非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,而且支持面向对象、命令式和声明式(如函数式编程)风格。web

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的良好支持,值得你在下一个项目中尝试一下它!npm

相关文章
相关标签/搜索