【问题标题】:How to subtract 2 dates on momentjs如何在momentjs上减去2个日期
【发布时间】:2016-11-07 07:31:28
【问题描述】:

您好,我目前在我的项目中使用 momentjs 作为我的日期,并且在减去 2 个日期时遇到了一些麻烦。

这是我的示例日期:

2016-10-08 10:29:23
2016-10-08 11:06:55

我尝试使用 diff 并从 momentjs 的指南文档中减去,但我一无所获。

如果减去日期的日期超过 24 小时怎么办?

提前致谢。

【问题讨论】:

    标签: momentjs


    【解决方案1】:

    你是对的,你可以使用moment的diff函数减去两个日期(see my example on Plunker):

    var date1 = moment('2016-10-08 10:29:23');
    var date2 = moment('2016-10-08 11:06:55');
    var diff = date2.diff(date1);
    

    Diff 将等于2252000,即两个日期之间的毫秒数。 See documentation for more details.

    您可以将第二个参数传递给diff,其中包含要使用的度量(年、月、周、日、小时、分钟和秒),因此如果您想知道两个日期之间的分钟数可以写:

    var diffInMinutes = date2.diff(date1, 'minutes');
    

    你会得到37分钟。

    【讨论】:

    • 如果添加的日期超过一天怎么办。 ex 29:54:20 , 29 小时 54 分 20 秒?我的结果总是 23:59:59
    • 例如? : var diff = date2.duration(date1); ?我说的对吗?
    • 嗯,我认为duration 不支持diff 操作。只是为了理解,“29:54:20”是您在输入中收到的日期?没有日/月/年部分?
    • 不,它给了我 1970-01-01 23:59:59 我怎么知道日期是否从 1970 年开始
    • 我不明白...让我们举个例子,如果两个日期是var date1 = moment('2016-10-08 10:29:23');var dateMoreThanADay = moment('2016-10-09 11:06:55');,并且差异是var diff3 = dateMoreThanADay.diff(date1, 'minutes');diff3 的值 1477 是两个日期之间的分钟数。该值是正确的。
    【解决方案2】:

    对于使用react-moment的任何人:

    您可以使用 diff 属性从另一个日期中减去给定日期。 您还可以使用 unit 属性以您喜欢的任何格式显示结果。

    例如,获取距离现在还剩多少天:

        const now = new Date() // get current date
        const endDate  // get some date in the future
      
        <Moment diff={now} unit="days">{endDate}</Moment> days left
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-23
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      相关资源
      最近更新 更多