input date js触发日期框_开源JavaScript实用日期处理库——date-fns

介绍

datefns为浏览器中操作JavaScript日期提供了最全面、最简单、最一致的工具集,并且可以在node.js中使用!常见的类似的库还有moment.js和day.js!


49d93cbd8404e09ae3837523c99c50b6.png

Github

https://github.com/date-fns/date-fns

特性

  • 模块化

只是用需要使用的功能,可以很好地与webpack, Browserify, 或者 Rollup集成

  • 原生日期

date-fns不会重新造轮子,而是使用现有的本机类型。此外,出于安全考虑,它不会扩展核心对象。date-fns中的函数可以正常工作,在某些情况下会遵循ECMAScript行为。

  • 纯函数

date-fns是使用纯函数构建的,并且始终返回新的日期实例,而不是更改传递的实例。这有助于防止错误并避免长时间的调试会话。

  • 支持Typescript和Flow

date-fns支持FlowTypeScript

  • 国际化

支持几十种语言,当然包括了简体中文,只有当你需要使用的时候才会包括进来

  • 一致性

它总是返回同一时区中的日期,不管传递的是时间戳、字符串还是日期对象。该API经过定制,具有可预测的名称和参数顺序。

  • 可靠性

datefns尊重时区和夏时制。它遵循语义版本控制,因此始终向后兼容。每个构建CI在大约400个时区检查超过650000个示例

  • 简单

最好的API是不存在API。对于date fns,你总是有一个函数可以做一件事。并且总是有一个单一的方法来解决问题。

  • 性能好

除了体积小之外,date-fns速度很快。

  • 详细的文档

每个函数都有一个详细的例子说明。由于JSDoc注释,文档可以在线(在网站上)和离线访问。


964657f885da2c65f97efba0e6f49635.png

示例

  • 格式化
import { format, formatDistance, formatRelative, subDays } from 'date-fns'format(new Date(), "'Today is a' iiii")//=> "Today is a Thursday"formatDistance(subDays(new Date(), 3), new Date())//=> "3 days ago"formatRelative(subDays(new Date(), 3), new Date())//=> "last Friday at 7:26 p.m."
  • 国际化
import { formatRelative, subDays } from 'date-fns'import { es, ru } from 'date-fns/locale'formatRelative(subDays(new Date(), 3), new Date())//=> "last Friday at 7:26 p.m."formatRelative(subDays(new Date(), 3), new Date(), { locale: es })//=> "el viernes pasado a las 19:26"formatRelative(subDays(new Date(), 3), new Date(), { locale: ru })//=> "в прошлую пятницу в 19:26"
  • 日常使用
import { addYears, formatWithOptions, toUpper } from 'date-fns/fp'import { eo } from 'date-fns/locale'const addFiveYears = addYears(5)const dateToString = formatWithOptions({ locale: eo }, 'D MMMM YYYY')const dates = [  new Date(2017, 0, 1),  new Date(2017, 1, 11),  new Date(2017, 6, 2)]const toUpper = arg => String(arg).toUpperCase()const formattedDates = dates.map(addFiveYears).map(dateToString).map(toUpper)//=> ['1 JANUARO 2022', '11 FEBRUARO 2022', '2 JULIO 2022']

总结

不论是moment.js或者day.js亦或是datefns都是JavaScript中处理日期非常好的库,也避免了很多日期处理中的很多问题!

879030317951882200582896f1aaa52e.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值