it-swarm.com.de

neues Datum (Millisekunden) gibt ein ungültiges Datum zurück

Ich versuche, Millisekunden mithilfe von Javascript in ein Datum zu konvertieren.

new Date(Milliseconds); 

konstruktor, aber wenn ich ihm einen Millisekundenwert von 1372439683000 gebe, wird ein ungültiges Datum zurückgegeben. Wenn ich zu einer Site gehe, die Millisekunden in Datum konvertiert gibt das korrekte Datum zurück.

Irgendwelche Ideen warum?

42
user1634451

Sie verwenden keine Nummer, Sie verwenden ein string, das wie eine Nummer aussieht. Laut MDN erwartet Sie, wenn Sie einen String in Date übergeben

ein Format, das von der Parsemethode erkannt wird (IETF-kompatible RFC 2822-Zeitstempel).

Ein Beispiel für eine solche Zeichenfolge ist "December 17, 1995 03:24:00". Sie übergeben jedoch eine Zeichenfolge, die wie "1372439683000" aussieht und nicht analysiert werden kann.

Konvertieren Sie Milliseconds in eine Zahl, indem Sie parseInt oder einen unären + verwenden:

new Date(+Milliseconds); 
new Date(parseInt(Milliseconds,10)); 
78
apsillers

Die Date-Funktion unterscheidet zwischen Groß- und Kleinschreibung:

new Date(Milliseconds); 
5
ic3b3rg

an Stelle von

new date(Milliseconds); 

benutze das

new Date(Milliseconds); 

ihre Aussage gibt Ihnen Datum ist nicht definiert Fehler

1
Sachin

Ich habe diesen Fehler aus einem anderen Grund erhalten.

Ich habe einen Schlüssel von redis gelesen, dessen Wert ein json ist.

client.get(someid, function(error, somevalue){});

Jetzt habe ich versucht, auf die Felder in somevalue (das ist eine Zeichenfolge) wie somevalue.start_time Zuzugreifen, ohne das JSON-Objekt zu analysieren. Dies gab "undefined" zurück, was, wenn es an den Date-Konstruktor übergeben wurde, new Date(somevalue.start_time) "Invalid date" zurückgibt.

Verwenden Sie also zuerst JSON.parse(somevalue), um das JSON-Objekt abzurufen, bevor Sie auf Felder in json zugreifen, um das Problem zu beheben.

0
Vinay Vemula