javascript - Moment.js - 如果日期处于不同日期,则无法正确计算日期之间的 .diff

标签 javascript date momentjs

有人可以解释一下为什么这不能正常工作吗?下面是使用 moment.js 计算当前时间和我的变量时间之间的差异的代码。

           //breakfast
           var breakfasttimeleft = moment(person.breakfast, 'HH:mm');
           console.log("Person breakfast is at:  " + person.breakfast + " -- Current time is at: " + currenttime);
           console.log(breakfasttimeleft.diff(now, 'minutes'));

           //lunch
           var lunchtimeleft = moment(person.lunch, 'HH:mm');
           console.log("Person lunch is at:  " + person.lunch + " -- Current time is at: " + currenttime);
           console.log(lunchtimeleft.diff(now, 'minutes'));

           //dinner
           var dinnertimeleft = moment(person.dinner, 'HH:mm');
           console.log("Person dinner is at:  " + person.dinner + " -- Current time is at: " +  currenttime);
           console.log(dinnertimeleft.diff(now, "minutes"));
        })

这是输出:

CONSOLE LOG
Person breakfast is at:  18:35 -- Current time is at: 18:35
0
Person lunch is at:  23:35 -- Current time is at: 18:35
300
Person dinner is at:  04:35 -- Current time is at: 18:35
-840

晚餐在某些地方完全搞砸了,比如上面的,而在其他地方却工作得很好。 基本上..如果另一个日期是在另一天,它不知道如何查找小时数,因此它会查找当天这两个小时之间的差异。

18:35 至 04:35。预计是早上18:35到04:35,大约10个小时。相反,它的作用是计算从早上 04:35 到当天晚些时候 18:35 的时间。 我该如何解决这个问题才能正常工作?

看来我还必须说明一天..我该如何格式化它,使其成为天+小时+分钟

最佳答案

好吧,你只是向它提供时间,但它也必须存储一些日期。如果您不提供日期,它只会被初始化为当前日期,这正是您的情况所发生的情况。

此外,根本无法暂时知道您想要设置的日期。您必须自行设置日期。

最简单的事情就是 add a day到您创建的日期:dinnertimeleft.add(1, 'd')

如果您也想提供日期(最好是完整的日期),您可以使用以下格式字符串:YYYY-MM-DD HH:mm 或者创建您自己的以下 this文档。

关于javascript - Moment.js - 如果日期处于不同日期,则无法正确计算日期之间的 .diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43955892/

相关文章:

javascript - 如何使用纯 DOM Javascript 以编程方式触发 React 组件中的 <select> onChange?

Perl - 如何在不使用 DateTime 的情况下从给定日期获取上一个星期三的日期

java - 计算 Java 中两个日期或日历对象之间的天数

javascript - 使用 momentjs 判断日、月或年是否无效

javascript - 日期时间格式为友好时间。瞬间JS输出错误

javascript - Momentjs格式化力矩对象并保持偏移

javascript - 动态重组对象数组,每个对象包含两个属性值对

javascript - 为父对象创建动态对象并分配键和值?

javascript - 逗号分隔的字符串

java - 如何更改 date.valueOf 中的月份