2016-06-13 9 views
0

私は店のオープンを検出しようと時間を閉じていますが、どんなに私はisBefore() & isAfter()からfalse応答を得るの周りに、私はドキュメントとスワップ機能に見てどのくらいのあなたの助けを事前にMoment.js:ワークアウト店舗の開閉時間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

imは 'm.opening [1] .add(1、 'day');' – Ash

答えて

2

あなたの値は、あなたは彼らが何を考えに設定されていません。

私は健全性チェックを追加し、m.openingが2つのヌル値を持つ配列であることを発見しました。

私はドキュメントを読むのに時間がかかり、間違った文字列を渡して時間を解析しています。必要な文字列はであり、HH:MMではありません。

以下にコードと実際の例の両方でスニペットを示しました。

値の確認は、最初のデバッグ手順の1つでなければなりません。

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>