Moment.js - Zu Erkennen, Wie Die Sommerzeit, Und Fügen Sie Einen Tag
Brauche ich zum erstellen von Date-Objekten von Zeichenfolgen, Datums-Daten für jede Stunde, jeden Tag seit dem Jahr 2000.
Die strings sehen wie folgt für jede Stunde, in einem Month/Day/Year Hour
format...
"04/02/2000 01", "04/02/2000 02", "04/02/2000 03" ...all the way to... "04/02/2000 24"
Nun, ich habe folgenden code, der funktioniert gut, außer an den Tagen mit Zeitumstellung...
//Split At Space
var splitDate = "04/02/2000 24".split(/[ ]+/);
var hour = splitDate[1];
var day = splitDate[0];
//Split At Slashes
var dayArray = day.split("/");
if (hour === "24") {
//Months are zero-based, so subtract 1 from the month
date = new Date(Date.UTC( dayArray[2], parseInt(dayArray[0] - 1), dayArray[1], 0, 0, 0 ));
date.setDate(date.getDate() + 1);
} else {
//Months and Hours are zero-based, so subtract 1 from each
date = new Date(Date.UTC( dayArray[2], parseInt(dayArray[0] - 1), dayArray[1], hour, 0, 0 ));
};
An Tagen mit Zeitumstellung, wie 04/02/2000
hinzufügen einen Tag nicht funktionieren, wenn die Stunde 24
. Stattdessen, es gibt einfach zurück Sun, 02 Apr 2000 23:00:00 GMT
Mit Moment.js ist es möglich, zu erkennen, ein DST-Tag und dieser code ordnungsgemäß funktioniert?
InformationsquelleAutor ac360 | 2014-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erkennen, DST, verwenden Sie die
.isDST()
Methode: http://momentjs.com/docs/#/query/is-daylight-saving-time/Mit diesem test, sollten Sie in der Lage, um zu bestimmen, wie Sie ändern Ihr Verhalten entsprechend.
Selbst Teile der Vereinigten Staaten würde es auf false zurückgeben, da es kleine Taschen in den USA, die nicht mit der Sommerzeit. In der Tat, nicht zu viele Länder in der Welt verwenden die Sommerzeit.
Es ist falsch. Sommerzeit ist weit verbreitet in Nordamerika und Europa sowie in anderen Ländern. Siehe diesen link von Wikipedia: en.wikipedia.org/wiki/Daylight_saving_time_by_country
InformationsquelleAutor adamb
Hier ist, wie ich machte einen kleinen checker:
Iran
Zeitzone2018-03-22
ist die eigentliche Zeitumstellung Tag, aber mit dieser Logik, die2018-03-21
wäre die Zeitumstellung Tag...Ich habe tatsächlich eine Revision der checker in meinem eigenen code. Ich aktualisierte die Antwort.
InformationsquelleAutor red