太强了!这个js库有200多个日期时间函数

大家好,我是农村程序员,独立开发者,前端之虎陈随易。

这是我的个人网站:chensuiyi.me

我的所以文章都可以在我的个人网站找到,欢迎访问,也欢迎与我交朋友。


笔者在多年的职业生涯中,用过很多 js 日期时间操作库,如今唯爱这一个,它就是 date-fns

这是一个拥有 200多个 日期时间函数的集合,堪称日期时间中的 Lodash

支持按需导出,最大可能地降低打包体积,也支持函数式,链式调用风格。

当前维护非常积极,star 数 35k,提交了 2000多次,近 400个 代码贡献者,被超过 400万 个项目所依赖使用。

2024年9月份发布了 v4 大版本,支持不同时区的时间操作和互转等,特点如下图。

话不多说,看几个示例:

格式化

js 复制代码
import { format, formatDistance, formatRelative, subDays } from 'date-fns';

format(new Date(), "'Today is a' eeee");
//=> "Today is a Saturday"

formatDistance(subDays(new Date(), 3), new Date(), { addSuffix: true });
//=> "3 days ago"

formatRelative(subDays(new Date(), 3), new Date());
//=> "last Friday at 7:26 p.m."

国际化

js 复制代码
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"

组合与函数式

js 复制代码
import { addYears, formatWithOptions } 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']

可以看到,这操作,非常地 Lodash

不过呢,官方文档,笔者每次查看都感觉有点不方便。

所以,特意根据官方文档制作了一份中文文档,点击查看 date-fns 中文文档

不过,笔者目前还没翻译完毕,还在持续进行中,感兴趣的朋友可以先提前关注一下,也欢迎与我微信交流探讨。

那么关于 date-fns 的安利,基本就结束了,本身就是一个函数库而已,没有太多可以细说的地方。

由于笔者比较八卦,我们来看一看 date-fns 周边的数据和信息。

日期时间的操作,是一个非常基础且重要的领域。

果不其然地,这个项目的赞助者非常之多,不乏很多出名的产品和公司。

截至目前,共收到了近 23 万美元的赞助。

项目的发起者是 Sasha,是一个独立开发者,自2017年起,就一直全职在做开源项目,目前和一家人生活在新加坡。

笔者发现,国外的独立开发者,不依托于公司而具备赚钱和生存能力的人有不少。

这确实是一个非常不错的生活方式,可以自由地选择自己觉得舒适的生活。

笔者目前也是独立开发者,2024年,是笔者做自由职业的地 4 第四年,做全职独立开发的第1年,目前超过 10 个产品有或多或少的收益。

如果对独立开发感兴趣,欢迎与我交流探讨。

相关推荐
木子七7 分钟前
Js Dom
前端·javascript
程序员鱼皮34 分钟前
刚毕业,去做边缘业务,还有救吗?
计算机·程序员·互联网·求职·简历
谢小飞40 分钟前
我做了三把椅子原来纹理这样加载切换
前端·three.js
记录学习-python40 分钟前
web开发Django+vue3
后端·python·django
圈圈的熊40 分钟前
HTTP 和 HTTPS 的区别
前端·网络协议·http·https
GIS程序媛—椰子1 小时前
【Vue 全家桶】2、Vue 组件化编程
前端·javascript·vue.js
Beamon__1 小时前
element-plus按需引入报错IconsResolver is not a function
前端
努力奔波的程序猿1 小时前
HBuilderx修改主题色-改变编辑器背景颜色等
前端
正小安1 小时前
Vue 3 性能提升与 Vue 2 的比较 - 2024最新版前端秋招面试短期突击面试题【100道】
前端·vue.js·面试