2015-02-01
- (2015年2月1日)2016-07-02
(2016年7月2日)我们可以很容易地看到旧日期发生在大约1年和 5个月和 1天前。
我希望使用Moment.js获得相对结果,所以我做了:
return moment('2015-02-01).fromNow();
很遗憾,library rounds结果我得到a year ago
,明年将近一半的时间被忽略(缺少5个月和1天)。
传递给.fromNow()
的唯一可用布尔参数没有任何帮助。是否可以获得完整的相对日期,如果需要,我可以控制故障甚至是小时,分钟和秒?
答案 0 :(得分:5)
根据您想要的方向,您可以选择几个选项。可能最直接的是使用持续时间而不是.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
等等。您可以根据需要格式化。
如果您想要更高级的持续时间格式,可以查看this plugin。