检查时间的最佳方法是moment.js中的两个小时之间

时间:2019-02-22 01:21:58

标签: javascript momentjs

我想在我的应用中执行类似于“夜间模式”的操作,并且我需要检查当前时间f.e 22:30是否在“ startNight”和“ endNight”字段中。

我正在尝试比较这些字段的总分钟数,如下所示:

function mode (nightStart, nightEnd) { //params disabled for example
      const now = moment('01:00', 'HH:mm');
      const nightStart = moment('22:00', 'HH:mm');
      const nightEnd = moment('06:00', 'HH:mm');

      return now.isBetween(nightStart, nightEnd);
}

它适用于范围'01:00'-'03:00'并检查这些时间,但是我想弄清楚是否将nightStart设置为'22:00'和nightEnd设置为'06:00' ,因为现在我说01:00不在22:00和06:00之间。

我想我必须处理午夜前后的时间,但是也许还有另一种更简单的方法来做到这一点。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我认为您应该使用日期初始化矩对象
例如,

const now = moment()
const nightStart = moment("2019-02-22 01:00:00", "YYYY-MM-DD HH:mm:ss")
const nightEnd = moment("2019-02-22 13:00:00", "YYYY-MM-DD HH:mm:ss")

now.isBetween(nightStart, nightEnd) // returns true