2015-02-01
- (2015 年 2 月 1 日)2016-07-02
(2016年7月2日)我们可以很容易地看到较早的日期发生在大约 1 年和 5 个月和 1 天前。
我想使用 Moment.js 实现类似的相对结果,所以我这样做了:
return moment('2015-02-01').fromNow();
不幸的是,图书馆查房结果,我得到了
a year ago
,几乎明年的一半时间被忽略了(缺少5个月零1天)。
传递给
.fromNow()
的唯一可用布尔参数没有任何帮助。是否有可能获得完整的相对日期,如果需要的话,我可以控制故障甚至小时、分钟和秒?
根据您想要的方向,您有几个选择。可能最简单的方法是使用持续时间而不是
.fromNow()
。
就这样做:
var diff = moment('2015-02-01').diff(moment(), 'milliseconds');
var duration = moment.duration(diff);
这将为您提供持续时间类型的时刻,您可以从中获取大量信息。例如:
duration.years(); //-1
duration.months(); //-4
duration.days();// -30
duration.hours(); //-8
或者如果您想要汇总单位:
duration.asYears(); //-1.416481451250425
duration.asMonths(); //-16.997784898617585
等等。您可以按照自己的喜好设置格式。
如果您想要更高级的持续时间格式,您可以查看此插件。