2016-06-13 10 views
0

Mit Moment.js Ich versuche, Ladenöffnungszeiten zu erfassen und Schließzeit aber Egal, wie viel ich sehe in Funktionen Dokumentation und Swap um I false Antwort von isBefore() & isAfter() erhaltenMoment.js: Training der Ladenöffnungszeiten und Schließzeiten

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

Vielen Dank im Voraus für Ihre Hilfe

+0

'Moment ('01: 30' , "HH: MM") // 1: 30AM die nächste day' - Wie funktioniert dies am nächsten Tag werden? –

+0

Ich hoffe mit 'm.opening [1] .add (1, 'Tag');' – Ash

Antwort

2

Ihre Werte werden nicht auf, was Sie denken, sie sind.

Ich habe eine Plausibilitätsprüfung hinzugefügt und festgestellt, dass m.opening ein Array mit zwei Nullwerten ist.

Das führte mich zum Lesen der Dokumentation und Sie geben die falsche Zeichenfolge, um die Zeit zu analysieren. Die Zeichenfolge, die Sie möchten, ist HH:mm, nicht HH:MM.

Ich habe unten einen Ausschnitt eingefügt, sowohl mit Ihrem Code als auch mit einem funktionierenden Beispiel.

Die doppelte Überprüfung, dass Werte erwartet werden, sollte immer einer der ersten Debugging-Schritte sein.

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>