2016-06-03 5 views
-3

ich basierend bin in Großbritannien so, wenn ich ein neues Datum in JavaScript zu analysieren versuchen, wie folgt:new Date ('yyyy-MM-TTThh: mm: ss') ohne locale

new Date('2016-06-03T09:05:15'); 

Ergebnisse in dem folgendes Datum:

Fri Jun 03 2016 10:05:15 GMT+0100 (BST) 

ich mag das Datum kann wie analysiert wird, und für keine locale Anpassungen (in diesem Fall BST) auftritt. Ist das möglich, ohne einen eigenen Datum/Zeit-Parser zu schreiben?

+0

Wenn Sie mit Datumsangaben arbeiten, sollten Sie in Betracht ziehen, etwas wie [Moment.js] (http://momentjs.com/) oder [Date.js] (http://www.datejs.com/) zu verwenden, Das sind die De-facto-Standards für den Umgang mit dieser Art von Operation und könnten Ihnen das Leben erleichtern. –

+2

Es gibt kein "wie es ist" -Datum - es wird immer ein Gebietsschema angegeben. Am nächsten kann man alles in UTC/GMT tun. –

+0

Hey @RionWilliams ironisch ich benutze Date.js :) aber 'Date.parse' analysiert nicht alle Daten. Vermisse ich einen Trick? – keldar

Antwort

0

Ich möchte das Datum analysiert werden wie sie ist, und für keine locale Anpassungen (in diesem Fall BST)

stattfinden soll, ist genau das, was sollte auftreten, aber es nicht in allen Browsern. Sie sollten Strings nicht mit dem Date-Konstruktor oder Date.parse analysieren (sie sind äquivalent zum Parsen). Strings immer manuell analysieren, eine Bibliothek kann helfen, ist aber normalerweise nicht notwendig.

Gemäß EMCAScript 2015 sollte "2016-06-03T09: 05: 15" als "lokales" Datum analysiert werden (dh basierend auf den Host-Systemeinstellungen für Datum, Uhrzeit und Zeitzone am angegebenen Datum und Zeitpunkt)). Der Zeitwert eines Datumsobjekts ist UTC. Wenn Sie also den Zeitwert erstellen, werden die Hosteinstellungen berücksichtigt. Die gleichen Einstellungen werden auch für die Ausgabe verwendet. Wenn also der OP-String korrekt analysiert und dann in die Ausgabe geschrieben wird, sollten Sie exakt dasselbe Datum und dieselbe Uhrzeit erhalten (obwohl wahrscheinlich in einem anderen Format).

Wenn Sie eine andere Zeit als die Eingabezeichenfolge sehen, wird die Zeichenfolge nicht korrekt analysiert (daher wird empfohlen, Zeichenfolgen manuell zu analysieren).

Ist das erreichbar, ohne meinen eigenen Datum/Zeit-Parser zu schreiben?

Ja, verwenden Sie eine Bibliothek, die jemand anderes geschrieben hat. Wenn Sie jedoch möchten, dass die Hosteinstellungen für die Ausgabe ignoriert werden, müssen Sie auch einen eigenen Formatierer schreiben oder eine Bibliothek verwenden.

Die gute Nachricht ist, dass es viele zur Auswahl gibt.

Verwandte Themen