2016-04-13 6 views
0

Wenn ich ein neues Date-Objekt aus einer Zeichenfolge erstelle, bekomme ich ein falsches Datum um einen Tag und ich verstehe nicht warum. Ich habe bereits verifiziert, dass es nicht aus dem Zeitzonenunterschied kommt.Warum gibt new Date() ein Datum mit einem Tag Offset zurück?

var myDate new Date("2016-04-12T22:04:00.000Z") 
console.log(myDate); 
Wed Apr 13 2016 00:04:00 GMT+0200 (Central European Summertime) 
+0

Zeitzonen bekommen ..... –

+4

Weil es sie in der lokalen Zeit von UTC konvertieren, da sie ihm zwei Zustände, so dass Sie in nächsten Tag rollen wie es ist 10:04 Uhr. – Lloyd

+0

gibt es eine Möglichkeit, es in UTC zu behalten? – juleee

Antwort

0

Das Problem ist Zeitzonen. 22:04:00 in UTC ist 00:04:00 in UTC + 2.

die UTC-Zeit zu erhalten, holen die Datumsteile mit myDate.getUTCHours(), mydate.getUTCMinutes() usw. ein full list of Date methods See.

0

Sie können die UTC Zeichenfolge Ihre Datum-

var myDate=new Date("2016-04-12T22:04:00.000Z"); 

myDate.toUTCString() 
/* returne value: 
Tue, 12 Apr 2016 22: 04: 00 GMT 
*/ 
+0

Hi @kennebec, entschuldigen Sie, dass ich das benutze Frage als ein Ort, um mit Ihnen zu kommunizieren. Aber ich benutzte Ihre tolle 'sharedStart' Funktion, benötigte aber Hilfe bei einer Modifikation. Wenn Sie verfügbar sind, können Sie mir bitte helfen - ich habe die Frage hier gestellt - https://Stackoverflow.com/q/49134350/1828637 – Noitidart

Verwandte Themen