Moment.js 中使用 .fromNow() 的相对日期 - 如何汇总几年前、几个月前和几天前?

问题描述 投票:0回答:1
  1. 假设我有一个日期字符串
    2015-02-01
    - (2015 年 2 月 1 日)
  2. 今天我们有
    2016-07-02
    (2016年7月2日)

我们可以很容易地看到较早的日期发生在大约 1 年 5 个月 1 天前。

我想使用 Moment.js 实现类似的相对结果,所以我这样做了:

return moment('2015-02-01').fromNow();

不幸的是图书馆查房结果,我得到了

a year ago
,几乎明年的一半时间被忽略了(缺少5个月零1天)。

传递给

.fromNow()
的唯一可用布尔参数没有任何帮助。是否有可能获得完整的相对日期,如果需要的话,我可以控制故障甚至小时、分钟和秒?

javascript date momentjs
1个回答
9
投票

根据您想要的方向,您有几个选择。可能最简单的方法是使用持续时间而不是

.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

等等。您可以按照自己的喜好设置格式。

如果您想要更高级的持续时间格式,您可以查看此插件

© www.soinside.com 2019 - 2024. All rights reserved.