2017-10-30 3 views
0

Ich habe dieses Problem. Ich habe dieses Datum mit diesem FormatDaylight Javascript Formatierungsdatum

var datestring = "2017-10-30T15:03:10.933044Z"; 

Wenn ich meinen Code wie diese

var d = new Date(datestring); 

schreiben obtaine I

Mon Oct 30 2017 16:03:10 GMT+0100 (ora solare Europa occidentale) 

, weil es eine Stunde Tageslicht in Italien ist jetzt. Nichtsdestotrotz würde ich gerne die gleiche Stunde 'Datentelegramm' haben (15, und nicht 16). Können Sie mir helfen?

vielen Dank

+0

Haben Sie versucht, diese mit externen Bibliothek wie 'moment.js' lösen? –

+0

Nein, aber ich nehme an, dass die von @Connum vorgeschlagene Lösung ausreicht, glauben Sie nicht? – Lorenzo

+0

Seine Antwort war nicht da, als ich kommentierte) Für mich sein Schnipsel druckt "" 2017-10-30T13: 03: 10.933Z "' –

Antwort

1

Wenn Sie gemäß der ECMA-262 einen UTC-Zeitstempel des Formats ISO 8601 als lokal behandeln möchten, entfernen Sie einfach das Z. Allerdings wird es jetzt einen anderen Zeitpunkt darstellen, wenn die lokale Zeitzone nicht GMT + 0000 ist.

Auch die Verwendung des integrierten Parsers wird nicht empfohlen (siehe Why does Date.parse give incorrect results?), da einige Browser sie immer noch als UTC (z. B. Safari 11) oder möglicherweise als ungültig behandeln. Sie sollten entweder eine eigene Funktion schreiben, um die Zeichenfolge zu analysieren, oder eine Bibliothek verwenden. Es gibt viele gute Parsing- und Formatierungsbibliotheken.

var s = '2017-10-30T15:03:10.933044Z'; 
 
var d = new Date(s.replace(/z/i,'')); 
 
console.log(d.toString());

1

Ihr Eingabestring in ISO-8601-Format ist. In diesem Format bedeutet Z am Ende, dass der Zeitstempel UTC-basiert ist.

Sie können eine menschlichere UTC-basierte String-Repräsentation mit der .toUTCString() Methode erhalten.

var datestring = "2017-10-30T15:03:10.933044Z"; 
var d = new Date(datestring); 
var s = d.toUTCString(); 
console.log(s) // "Mon, 30 Oct 2017 15:03:10 GMT" 

Wenn Sie die Zeichenfolge in einem bestimmten Format möchten, sollten dann eine Bibliothek wie Moment.js verwenden.

Verwandte Themen