【问题标题】:Relative Date in Moment.js using .fromNow() - how to get together years, months and days ago?Moment.js 中的相对日期使用 .fromNow() - 如何在几年、几个月和几天前聚在一起?
【发布时间】:2016-11-04 15:48:53
【问题描述】:
  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();

不幸的是library rounds 的结果,我得到了a year ago,其中几乎忽略了明年的一半(缺少 5 个月零 1 天)。

传递给.fromNow() 的唯一可用布尔参数无济于事。是否可以获得完整的相对日期,如果需要,我可以将细分控制到小时、分钟和秒?

【问题讨论】:

    标签: javascript date momentjs


    【解决方案1】:

    您有几个选择,具体取决于您想要的方向。可能最直接的方法是使用持续时间而不是 .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

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 2013-05-31
      • 2011-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多