Nachdem ich einige der anderen MomentJS-Fragen und Antworten durchgelesen habe, bin ich immer noch ratlos, wie man den Moment verwenden würde, um zwei verschiedene Male zu vergleichen.Nur TIME-Werte vergleichen MomentJS
Ich brauche (will) nicht den Tag/das Datum zu berücksichtigen.
Mein Anwendungsfall ist dies: Ich lese einen Zeitplan (Start/Ende mal) aus einer Konfigurationsdatei. Dies geschieht mit Hilfe Node.js getan
Starttime = 06.30
Endtime = 03.30
var currentTime= moment(); // e.g. 11:00 pm
var starttime = moment('06:30 pm', "HH:mm a");
var endtime = moment('03:30 am', "HH:mm a");
amIBetween = currtime.isBetween(starttime , endtime);
console.log(amIBetween); // returns false
Mein Szenario ist technisch Spanning zwei Tage und ich verstehe, warum es falsch ist.
Ich brauche (erwarten) Moment, um TRUE zurückzugeben - d. H. Dass currtime istBeteen Start und Endzeit und fällt in diesen Bereich.
Müsste ich nach 12 Uhr nachsehen und dann einen Tag hinzufügen, damit der Scheck funktioniert? Andere Vorschläge, um dies zu erreichen. Ich schaute auf Moment-Bereich, der Funktion enthält, aber mit ähnlicher Frage dafür.
Ich finde es schwer zu glauben, dass es dieser Komplex ist, aber vielleicht ist es: \
-
Hier eine weitere Klarstellung ist das Problem mit Spanning Tagen entsteht, auch wenn sie versuchen, mehr explizit zu sein :
var currentTime= moment('11:00p', "HH:mm a");
var startTime = moment('06:00p', "HH:mm a");
var endTime = moment('03:30a', "HH:mm a");
currentTime.toString(); //"Fri Oct 28 2016 23:00:00 GMT-0400"
startTime.toString(); // "Fri Oct 28 2016 18:00:00 GMT-0400"
endTime.toString(); // "Fri Oct 28 2016 03:30:00 GMT-0400"
currentTime.isBetween(startTime, endTime); // false
currentTime.isAfter(endTime) && currentTime.isBefore(startTime); //false
currentTime.isAfter(startTime) && currentTime.isBefore(endTime); //false
scheint Art offensichtlich, dass sie seit der Tage/Datum falsch sein würde von Moment betrachtet wird. Das ist es, was ich versuche zu umgehen.
Die folgende funktionieren würde:
endTime.add(1, "days");
currentTime.isBetween(startTime, endTime); // TRUE
Dies aber würde bedeuten, dass ich zu überprüfen, bräuchten zu, wenn die Startzeit vor 00.00 Uhr war & & die ENDTIME wie nach 00.00 dann 1 Tag bis ENDTIME hinzuzufügen. Kluddel?
Ja, das war Tippfehler in der Zeit. Schätzen Sie den Vorschlag – rfossella