Moment.js:锻炼商店营业时间和营业时间

时间:2016-06-13 18:53:11

标签: javascript momentjs

使用Moment.js我正在尝试检测商店的营业时间和结束时间但是无论我对文档和交换功能的了解程度如何,我都会得到false&的isBefore()响应。 isAfter()

m.opening=[
     moment('11:30', "HH:MM"),
     moment('01:30', "HH:MM") //1:30AM the next day
];
console.log(m.opening[1].isBefore(moment('07:00', "HH:MM"))); //always false no matter if I use isBefore() or isAfter()

if(m.opening[1].isBefore(moment('7:00', "HH:MM")))
  m.opening[1].add(1,'day'); //If closing time is before 7AM add a day
  m.range =  m.moment.range(m.opening);

提前感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您的价值观未按照您的预期设定。

我添加了一个健全性检查,发现m.opening是一个包含两个空值的数组。

带我去阅读文档,你传入错误的字符串来解析时间。您想要的字符串是HH:mm,而不是HH:MM

我已经在下方附上了一个代码段,包括您的代码和一个工作示例。

仔细检查值是否符合预期应始终是最初的调试步骤之一。



var m = {};

m.opening=[
     moment('11:30', "HH:MM"),
     moment('01:30', "HH:MM") //1:30AM the next day
];


console.log(m);

console.log(m.opening[1].isBefore(moment('07:00', "HH:MM"))); //always false no matter if I use isBefore() or isAfter()


//////////////
m.opening=[
     moment('11:30', "HH:mm"),
     moment('01:30', "HH:mm") //1:30AM the next day
];


console.log(m);

console.log(m.opening[1].isBefore(moment('07:00', "HH:mm"))); // Now returns true.

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
&#13;
&#13;
&#13;