Anzeige der richtigen Datumsformat, je nach Kultur
Ich bin mit einer Steuerung für einen popup-Kalender für die Datumsauswahl. Dieser verwendet eine javascript-Funktion SetText, um die textbox zu dem angegebenen Datum. Ich kann es nicht ändern in dem Kalender-Steuerelement selbst, aber ich kann, außer die SetText Funktion. Die SetText javascript braucht nur die TextBox-Namen und dem Datum-Wert im string-format und setzt die TextBox den string.
Problem:
Ich brauche, um das Datum im format "30. April".
Einfach zu tun. Verwenden getMonth() und getDate() wo kann ich analysieren, die Informationen von dort.
Nun, ich muss sicherstellen, das zeigt richtig, für andere Kulturen. Zum Beispiel Großbritannien zeigt Termine als "30 April". Da die code-behind(c#) könnte sein, senden Sie das Datum in der UK-format, wie weiß ich, in der javascript, die Sie verwenden UK(TT/mm/JJJJ) und nicht US(mm/dd/yyyy)?
Der Browser navigator language kann gesetzt werden, um eine Einstellung während der server konfiguriert ist, um ein anderes zu verursachen, 4. Januar, als 1. April überein.
Die Datejs-Bibliothek beinhaltet eine Vielzahl von date-Funktionen, mit denen Sie formatieren und Parsen von Datumsangaben in einer Vielzahl von Formaten und verwenden von Datums-format-strings. datejs.com
InformationsquelleAutor Joe Stropich | 2009-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie das Microsoft-Ajax-Framework dieses framework definiert eine Reihe von "client-seitige Erweiterungen", die zusätzliche Funktionen oder "Erweiterungen", um den JavaScript-Basistypen.
Den Datum-Typ-Erweiterungen ist, was Sie suchen, speziell die Datum.parseLocale Funktion.
Mit dieser Funktion können Sie Parsen einen string mit einem bestimmten format.
Können Sie synchronisieren Sie Ihre server-side und client-side-Kultur durch die Einstellung der ScriptManager.EnableScriptGlobalization - Eigenschaft auf true, und verwenden Sie das Datum.parseLocale-Funktion ohne Angabe von format.
Geben einen Blick auf diesen Artikel:
InformationsquelleAutor CMS
Sehen toLocaleString und Verwandte Funktionen.
toLocaleDateString Sie näher zumindest. Ich sollte auch darauf hinweisen, das Gebietsschema Unterschied ist wirklich nur weit verbreitet, mit numerischen Daten (11/22/09 werden könnten Nov 12 oder Dez 11), aber wenn man mit einem Monatsnamen oder abbrev, die Bedeutung sollte klar sein, irgendwo.
InformationsquelleAutor jiggy
Wenn Sie das backend, warum nicht senden Sie einfach eine Zeitmarke und schieben Sie es in
Date
Objekt?Als für die Formatierung auf der client-Seite, da war ich schon mit Dojo, ich löste dieses problem, indem
dojo.date.locale.format
. Es war völlig schmerzlos.Tutorial: http://docs.dojocampus.org/dojo/date/locale
API-doc:
http://api.dojotoolkit.org/jsdoc/1.3/dojo.date.locale.format
Datum-format-Beschreibungen: http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns
InformationsquelleAutor Justin Johnson
Drei Dinge, die Sie verwenden könnten:
1) toLocaleString - Wie schon vorgeschlagen. Das problem mit diesem ist, wenn das senden einer Reihe von "4/1/2009" dies kann dazu führen, ein paar Dinge. 4. Januar oder 1. April.
2) navigator.Sprache und navigator.Systemsprache - Nachdem Sie die Datums-Zeichenfolge können Sie überprüfen, um zu sehen, welche Sprache das system ist in und zu analysieren, das Datum von dort. Das problem mit dieser und Lösung 1 ist, was, wenn Sie ein UK-server und die Browser-Maschine ist UNS. Haben Sie den code hinter dem schicken 1. April als 1/4/2009, wo das javascript liest den string als was auch immer die Sprache der Kunden-Browser ist. Also, UK-server und US-browser, geben Sie ein Falsches Ergebnis.
3) Code Verwenden, Hintern-Kultur - Erstellen Sie eine variable in javascript, wenn die Seite geladen wird, erfolgt ein Aufruf einer Funktion in der code-hinter, zurück
this.Page.Culture
von dort aus, werden Sie wissen, was die Kultur der string wird zurück geschickt da. Dadurch wird das Missverhältnis, dass die ersten beiden Lösungen führen kann. Es dauert ein wenig zusätzliche Arbeit, um sicherzustellen, dass es korrekt angezeigt, aber zumindest werden Sie in der Lage, verwenden Sie die Zeichenfolge ohne die Möglichkeit von abweichenden Kulturen.InformationsquelleAutor Joe Stropich
toLocaleDateString wäre eine bessere Lösung, als toLocaleString für Ihr problem, da Sie nicht die Zeit (wie Sie nur anfordern, das Datum).
InformationsquelleAutor Eli Grey
Dem open-source-JavaScript-Bibliothek Date.js hat einige gute Methoden für die Formatierung von Datums -, sowie es unterstützt eine Reihe von Sprachen:
Date.js bei Google Code: http://code.google.com/p/datejs/
Wenn Sie wollen schön formatierte Datum /Zeit, können Sie geben Sie einfach ein Formatierungs-string (fast identisch mit denen in verwendet .NET Framework) in ein Date-Objekt ist
.toString()
Methode.Es hat auch eine ganze Reihe von Kulturen, die Ihnen ermöglichen, schließen Sie einfach das entsprechende Skript für diese Kultur.
Wenn Sie möchten, um Sie zu verwalten sich selbst (wie wir in unserer apps), können Sie die Ressourcen, die Ihnen die Liste der geeigneten Ressourcen-strings für eine bestimmte Kultur. Hier ist eine, die zeigt die richtige Formatierung von strings für eine Tonne Kulturen: http://www.transactor.com/misc/ranges.html
InformationsquelleAutor mckamey
Als Sie mit ASP.NET dann können Sie auch mit ASP.NET Ajax. Wenn dem so ist, gibt es zwei Eigenschaften, die auf die ScriptManager, die von nutzen für Sie:
"EnableScriptLocalization - Ruft ab oder legt einen Wert fest, der angibt, ob das ScriptManager-Steuerelement rendert lokalisierte Versionen von script-Dateien.
EnableScriptGlobalization - Ruft ab oder legt einen Wert fest, der angibt, ob das ScriptManager-Steuerelement rendert Skript, das unterstützt die Analyse und Formatierung von Kultur-spezifischen Informationen.
Wenn Sie beide Optionen aktiviert (auf true gesetzt) dann ASP.NET Ajax-Extender usw. sollte automatisch lokalisiert werden in der angegebenen Kultur im web.config:
Zum Beispiel, diese Einstellung wird lokalisieren die AjaxControlToolkit Kalender in Ihre specificed Kultur.
Selbst wenn Sie Sie NICHT verwenden ASP.NET Ajax hinzufügen ein ScriptManager-Steuerelement und ermöglicht die Lokalisierung wird Ihnen ein nützlicher javascript-variable namens
__cultureInfo
enthält ein JSON-array von lokalisierten Formiat, wie Währungen, Datumsangaben usw.InformationsquelleAutor Dan Diplo
Ich löste dieses problem, indem Datejs als
(in Ihrem Fall können Sie die Kultur aus dem navigator.Systemsprache (oder navigator.browserLanguge etc) und fügen Sie ein Skript-tag in den header mit src-Attribut verweist auf den entsprechenden Pfad)
wobei d jede date-Objekt
(Ich habe versucht, mit Datum.heute().toShortDateString (), aber es war das werfen der Ausnahme. (die CultureInfo-JSON-Objekt hatte eine andere Struktur als das, was die Funktion erwartet).
InformationsquelleAutor Yasir Laghari