Moment.js:锻炼店开闭时间

问题描述:

随着Moment.js我试图探测店开闭时间,但无论我多么看看文档和交换功能,围绕我从isBefore() & isAfter()false响应提前Moment.js:锻炼店开闭时间

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); 

感谢您的帮助

+0

'时刻('01:30' , “HH:MM”)// 1:30AM下一day' - 这是如何成为第二天? –

+0

我希望用m.opening [1] .add(1,'day');'' – Ash

你的价值没有被设置为你认为他们是。

我添加了一个健全性检查,发现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>