Frage

Es scheint, ich nicht das JavaScript-Date-Objekt, wie es inherintly standardmäßig US Daten verwenden kann, wenn Sie mit einem Datumszeichen initialisieren. Es gibt keine Möglichkeit, jede Kultur Informationen zum Datum Objekt über

d. Egal, was die Kunden locale Einstellungen

var d = new Date ( „08.10.2009“) wird immer ein Datum-Objekt erstellen, die den 10. August 2009 statt der 8. Oktober 2009, wenn die Kunden locale Großbritannien war.

So gegeben, dass meine Anforderung leicht zu addieren / subtrahieren Tage / Monate / Jahre Lage sein, ist es ein kluger Weg, dies ohne das Date-Objekt leicht tun

Alles, was ich tun muß, ist einen Tag zu einem Datum hinzuzufügen (oder eine String-Darstellung eines Datums). so dass, wenn mein Code die locale setttings sind in den USA erfasst, wenn es eine Zeichenfolge wie „10.08.2009“ sieht es whacks es zu „10.09.2009“, aber wenn es es war in Großbritannien entdeckt hätte, wäre es wissen, haben sie eine uk String-Darstellung eines Datums und gerädert es bis zu „09.10.2009“

War es hilfreich?

Lösung

Für Datum Manipulation und Lokalisierung auf JavaScript empfehle ich immer die DateJS Bibliothek.

Diese Bibliothek abstrahiert die Verwendung von Date-Objekten, hat eine sehr gute Lokalisierungsoptionen, leistungsstarke Datum Parsen und Formatierung, und es hat auch eine sehr schöne fließend API.

Andere Tipps

Wenn Sie wissen Sie bekommen Eingabe formatiert tt / mm / jjjj Sie das richtige Datum leicht zusammenstellen können.

function britDay(D){
 D= D.match(/\d+/g);
 return new Date(+D[2], D[1]-1, +D[0]);
}

toLocaleDateString wird das Datum im Format zurück vom Benutzer erwartet.

auf der Benutzereingabe Unter Berufung, dass gehorchen bestimmte Formatierungsregeln sind optimistisch- weshalb die meisten Websites getrennt verwenden, markierte Eingaben oder Auswahlfelder für den Monat, Datum und Jahr.

Sie wissen wahrscheinlich, dass es einfach einen Tag ein Datum hinzuzufügen, fügen Sie einfach 86.400 * 1000 Millisekunden auf das Datum. Es klingt wie in Ihrer locale Anzeige ist das Problem; Does Date.toLocaleString () nicht das Richtige für Sie?

dojo.date.locale.parse in der Lage, eine formatierte Zeichenfolge nach dem Gebietsschema Ihrer Wahl zu analysieren. Es hat eine Tabelle der kulturellen Daten basiert weg unicode.org/cldr. Siehe diesen Artikel für weitere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top