2016-05-06 11 views
2

Ich versuche, ein bestimmtes Datum in utc zu konvertieren (speichern Sie es in db) und nach dem Abrufen zeigen Sie es als lokale Zeit. Wenn ich Moment verwende, gibt es immer eine halbe Stunde Verspätung im Vergleich zu js Date-Objekt, irgendeine Idee warum?Moment js utc Konvertierungen arbeiten nicht wie erwartet, hinter Datum Objekt Wert

Datum 8. Mai 2016, Browser-Zeitzone ist Indien

Convert Date Utc: Moment:

moment('2016-05-08', 'YYYY-MM-DD').utc().format('YYYY-MM-DD HH:MM:SS Z') 
Result: "2016-05-07 18:05:00 +00:00" 

Datum:

new Date('2016/05/08').toUTCString() 
Result: "Sat, 07 May 2016 18:30:00 GMT" 

I 18.30 glauben, dass das richtig ist Antwort und nicht 18:05

Von Utc bis heute:Moment:

moment('2016-05-07 18:05:00 +00:00', 'YYYY-MM-DD HH:MM:SS Z').format('YYYY-MM-DDTHH:MM:SS') 
Result: "2016-05-07T23:05:00" //This should be 8th May since I had started with 8th May 

Datum:

new Date("Sat, 07 May 2016 18:30:00 GMT").toString() 
Result: "Sun May 08 2016 00:00:00 GMT+0530 (India Standard Time)" //this is the correct answer since I had initially started with 8Th May. 

Gibt es Gründe, warum Moment diese Verzögerung hat?

+0

Es ist zeitzonenbezogen. Entweder ist die Zeit des Computers abgelaufen oder der Moment hat nicht die halbe Stunde in Indien - oder ein anderes, damit verbundenes Missverhältnis. https://en.wikipedia.org/wiki/Indian_Standard_Time –

Antwort

2

Sie verwenden Kapital M anstelle von mm für Minuten, und es gibt Ihnen Monate. Wechseln Sie zu wenig m und alles ist gut.

moment('2016-05-08', 'YYYY-MM-DD').utc().format('YYYY-MM-DD HH:mm:ss Z') 
"2016-05-07 18:30:00 +00:00" 
+0

OMG, ich kann es glauben. Danke vielmals. Wie dumm von mir! – wallop

+0

Wenn es dich besser fühlen lässt, musste ich es länger anstarren, als ich zugeben möchte, da ich einer der Betreuer des Moments bin :-) –

+0

danke:) Ich hoffe der Rest ist in Ordnung :) – wallop