JavaScript - Get-system kurzes Datumsformat
Gibt es eine Möglichkeit, das system kurzes Datumsformat in JavaScript?
Beispielsweise, ob die Systemeinstellung für das kurze Datum ist im amerikanischen format, zB. m/d/Y oder den europäischen zB. d/m/Y
Bitte beachten Sie:
Dies ist keine Frage zum formatieren von Datum oder Berechnung auf Basis von Geo -, sondern darum, das format der OS/system
Fragen Sie, ob oder nicht, können Sie herausfinden, welche der Benutzer hat, in die Sie rechts unten in Ihrem Bildschirm? Oder du fragst, welche der Benutzer sollte, basiert auf Ihrer Position?
Ich glaube nicht, dass so
Gute Frage. Ich glaube nicht, dass es ein Weg, zu sagen direkt, aber vielleicht könnten Sie arbeiten Sie es durch die Formatierung von einem bekannten Datum mit
sehen, wenn dieser thread hilft stackoverflow.com/q/2388115/276263
War es, verflucht. Endete, sodass der Benutzer eine kurze Liste der standard-Formate in eine combobox und Aufzeichnung der Wahl in das Profil des Benutzers in meine app-Datenbank. Browser-Unterstützung für diese ist super lahm.
Ich glaube nicht, dass so
Gute Frage. Ich glaube nicht, dass es ein Weg, zu sagen direkt, aber vielleicht könnten Sie arbeiten Sie es durch die Formatierung von einem bekannten Datum mit
.toLocaleDateString()
und dann testen Sie die resultierende Zeichenfolge, um zu sehen, wenn es endete, beginnend mit dem Monat?sehen, wenn dieser thread hilft stackoverflow.com/q/2388115/276263
War es, verflucht. Endete, sodass der Benutzer eine kurze Liste der standard-Formate in eine combobox und Aufzeichnung der Wahl in das Profil des Benutzers in meine app-Datenbank. Browser-Unterstützung für diese ist super lahm.
InformationsquelleAutor WooDzu | 2013-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nachdem eine Prise Forschung habe ich festgestellt, dass das technisch nicht möglich die regionalen Einstellungen, und von diesem Datum-format -, aber Sie können mehrere andere Dinge. Wählen Sie eine der folgenden Optionen:
a) Der bereits erwähnte -und veraltet- "toLocaleString ()" - Funktion:
THEMEN:
1) Sie können nicht "myDateFormat.ersetzen", um die Datum-Maske als Monat wird nicht gespeichert, "01", "02", etc in der Zeichenfolge, sondern als text statt, basierend auf dem Gebietsschema (z.B. "Februar" in Englisch, aber es ist "Φεβρουάριος" in Griechisch, und wer weiß, was in z.B. Klingonen).
2) Verhalten sich Anders auf verschiedenen Browsern
3) unterschiedliches Verhalten auf verschiedenen OS und browser-Versionen...
b) Verwenden Sie die
toISOString()
Funktion statttoLocaleString()
. Sie bekommen nicht das Gebietsschema, Datum, Maske, sondern ein Datum, von dem können Sie sagen, wo ist welches Teil des Datums (also wo "Monat" oder "Tag" ist in, string). Sie können auch arbeiten mitgetUTCDate()
,getUTCMonth()
undgetUTCDay()
Funktionen. Sie kann immer noch nicht sagen, welches Datum-format der client verwendet, kann aber sagen, aus welchem Jahr/Monat/Tag/usw. Arbeit mit, wenn Sie schnappen Sie sich einen Termin; verwenden Sie diecode
oben zum testen der Funktionen, die ich hier erwähnt, um zu sehen, was Sie erwarten können.c) Lesen Sie
Inkonsistente Verhalten von toLocaleString() in verschiedenen browser Artikel und benutzen Sie die (IMHO große) Lösung dort beschrieben
Wenn du meinst, die option 'c' ja, du hast Recht, das problem wird darauf hingewiesen, wie browser-Problem, aber die Lösung ist mehr Generika. Auf der anderen Seite, würde ich mit 'b', wenn ich Sie war. Wenn es ein muss zu wissen, das Datum-format-Maske, gibt es eine weitere option: "myDateFormat.ersetzen("1950", "yyyy");", usw. - aber für den Monat, den Sie brauchen, um die Zeichenfolge " start-Ende und ersetzen Sie diese Auswahl mit "mm" - was macht das script ein bisschen zu kompliziert, auch für Ihr Ziel...
Das einzige Problem ist, dass wenn zum Beispiel meine system-Uhr, excell-Tabellen und ganze Reihe von anderen apps sind mit d/m/Y und mein browser würde erkennen, 'de-de' aus irgendeinem Grund (ja, es funktioniert,) wird es mit dem format en-US ie-m/d/Y
Ich verstehe. Aber das Problem mit javascript-workarounds regionalen Einstellungen können Sie einmalig auf jedem und allen Systemen als Benutzer anpassen kann, angezeigt werden Datum/Uhrzeit-format auf, was Sie wollen. E. g. mein computer hat en-US-Gebietsschema (I-wie einstellen das ich als EN OS EN-Tastatur), aber ich meine Datum/Zeit-format Ungarisch ("JJJJ.mm.dd, DDDD" und "HH:mm:ss"), wie ich bin Ungarisch. Und dieses format ist nicht die ungarischen standard. Ich mag es einfach so... Das ist der Grund, warum "Nein" ist die Antwort auf Ihre Frage. Es ist unmöglich, ein Skript schreiben, das funktioniert perfekt auf alle und jeden-system "extrahieren" Datum-format
Auf einer Seite Hinweis: eine leere input type=Zeit zeigt das format genau so, wie Sie im system konfiguriert, aber ich habe nicht gefunden, eine Möglichkeit zum abrufen von JavaScript
InformationsquelleAutor
Ist es nicht möglich. Erhalten Sie die Kultur von Benutzer-browser und verwenden Sie einige js-Bibliotheken konvertieren von Datum-format. http://code.google.com/p/datejs/
Antwort war: Nein. Es ist nicht möglich, nur gab Sie einige Tipps. 🙂
InformationsquelleAutor Reno
Verwenden Datum.CultureInfo.formatPatterns.shortDate
InformationsquelleAutor Ben