Die JS-Dokumentation für Date
behauptet, dass es vier Möglichkeiten gibt, den Date
-Konstruktor zu verwenden. Von https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date:Aufrufen des Date-Konstruktors mit einem Date-Objekt
new Date();
new Date(value); // integer
new Date(dateString); // string
new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
Allerdings scheint es ein fünfte Weg, um den Konstruktor zu verwenden, indem sie in einem gültigen Datum-Objekt übergeben. sind
date = new Date() // Wed Sep 02 2015 16:30:21 GMT-0700 (PDT)
date2 = new Date(date) // Wed Sep 02 2015 16:30:21 GMT-0700 (PDT)
Sie verschiedene Objekte, so scheint es wie eine einfache Möglichkeit, eine Kopie eines Datums zu machen: Zum Beispiel das folgende funktioniert gut in der Chromkonsole
date2 === date // false
date.setMonth(1) // 1422923421090
date // Mon Feb 02 2015 16:30:21 GMT-0800 (PST)
date2 // Wed Sep 02 2015 16:30:21 GMT-0700 (PDT)
So sind meine Fragen :
- Warum ist das nicht in der offiziellen Dokumentation? Fehle ich etwas?
- Ist dies eine offiziell unterstützte Verwendung des Konstruktors? Wird es auf allen Plattformen/Browsern funktionieren?
- Ist dies eine sichere Möglichkeit, eine Kopie eines
Date
Objekts zu erstellen, wobei z.date2 = new Date().setTime(date.getTime())
?
Es funktioniert in Firefox, aber das Ergebnis ist nicht genau der gleiche Zeitstempel wie der ursprüngliche (Millisekunden sind abgeschnitten). Führen Sie das Beispiel einfach ein paar Mal aus: [jsfiddle] (https://jsfiddle.net/at51o4aw/) – lzydrmr