我不是 Moment 的深度用户, 只是日常会遇到一些时间格式化的需求,
之前用的都是 Moment, 不过对 Moment 的 mutable API 感到有些不舒服,
同事介绍过 Luxon, 里边用不可变数据的风格设计的 API, 所以就试试.
GitHub 上星星很多, 请放心食用 https://github.com/moment/luxon
Luxon 是 Moment 项目的某个维护者开发的, 按照他个人想法进行了改进,
除了不可变性, 使用的工具做了更新, 也尝试到时区做了更好的一些调整,
具体要看作者原文说明了 https://moment.github.io/luxo...
Luxon 和 Moment 的区别
文档有详细描述 https://moment.github.io/luxo...
最明显的一个例子, 就是不可变性(Immutability), 比如在 Moment 当中修改时间:
var m1 = moment();
var m2 = m1.add(1, 'hours');
m1.valueOf() === m2.valueOf(); //=> true
原来的对象是会被修改的. 但是在 Luxon 当中旧的对象会保持不变:
var d1 = DateTime.local();
var d2 = d1.plus({ hours: 1 });
d1.valueOf() === d2.v