Wie kann ich aus diesem Datumsobjekt in JavaScript den Namen des Monats (z. B. Oktober / Oktober) generieren?
var objDate = new Date("10/11/2009");
Wie kann ich aus diesem Datumsobjekt in JavaScript den Namen des Monats (z. B. Oktober / Oktober) generieren?
var objDate = new Date("10/11/2009");
Antworten:
Kürzere Version:
Hinweis (2019-03-08) - Diese Antwort von mir, die ich ursprünglich 2009 geschrieben habe, ist veraltet. Siehe David Storeys Antwort für eine bessere Lösung.
quelle
new Date()
Rückgabe,Tue Sep 06 2011 20:02:25 GMT+0200 (CEST)
was eindeutig bedeutet, dass das Date-Objekt bereits alle diese intern definierten (Monats- und Wochentagsnamen) hat, nicht öffentlich ist, sodass wir alles erneut eingeben müssen. :(String#split
mittoString
oder zu arbeitentoDateString
.Dies ist jetzt mit der ECMAScript Internationalization API möglich:
'long'
Verwendet den vollständigen Namen des Monats,'short'
den Kurznamen und'narrow'
eine minimalere Version, z. B. den ersten Buchstaben in alphabetischen Sprachen.Sie können das Gebietsschema von Browsern
'default'
nach'en-us'
Belieben ändern (z. B. ) und es wird der richtige Name für diese Sprache / dieses Land verwendet.Mit
toLocaleString
API müssen Sie jedes Mal das Gebietsschema und die Optionen übergeben. Wenn Sie an mehreren verschiedenen Daten dieselben Gebietsschemainformationen und Formatierungsoptionen verwenden möchten, können SieIntl.DateTimeFormat
stattdessen Folgendes verwenden:Weitere Informationen finden Sie in meinem Blogbeitrag zur Internationalisierungs-API .
quelle
Hier ist noch eine mit Unterstützung für die Lokalisierung :)
Sie können dann ganz einfach Unterstützung für andere Sprachen hinzufügen:
quelle
Date.locale
istundefined
. Es ist jedoch eine hervorragende Antwort für andere JS-Implementierungen!Wenn es Ihnen nichts ausmacht, den Date-Prototyp zu erweitern (und es gibt einige gute Gründe, dies nicht zu tun), können Sie tatsächlich eine sehr einfache Methode finden:
Diese Funktionen gelten dann für alle Javascript-Datumsobjekte.
quelle
Ich empfehle die
format
Funktion aus der Bibliothek moment.js , die Sie folgendermaßen verwenden können:Verwenden Sie "MMMM" anstelle von "MMM", wenn Sie den vollständigen Namen des Monats benötigen
Neben einer langen Liste weiterer Funktionen wird die Internationalisierung nachdrücklich unterstützt .
quelle
Luxon
unddate-fns
, aber dann wieder gibt es breite Browser - Unterstützung für die Internationalisierung API heute .Es kann als verwendet werden
quelle
Auf diese Weise kann ein üblicher einfacher Prozess ab Datumsobjekt ausgeführt werden.
Oder Sie können Datum Prototyp wie machen
Ex:
var dateFormat3 = new Date().getMonthName();
# March
var dateFormat4 = new Date().getFormatDate();
# 16 March, 2017
quelle
Sie können dazu datejs verwenden. Überprüfen Sie die FormatSpecifiers . MMMM gibt Ihnen den Namen des Monats:
Und Datejs haben das für mehr als 150 Locales lokalisiert! Siehe hier
quelle
Versuchen:
quelle
Hier ist ein Weg, der nicht von einem fest codierten Array abhängt und mehrere Gebietsschemas unterstützt.
Wenn Sie ein ganzes Array benötigen:
Verwendungszweck:
Wenn Sie nur einen ausgewählten Monat benötigen (schneller):
Verwendungszweck:
Getestet und funktioniert einwandfrei unter Chrome und IE 11. Unter Mozilla sind einige Änderungen erforderlich, da das gesamte Datum zurückgegeben wird.
quelle
toLocaleString
Leider ist der beste Weg, den Monatsnamen zu extrahieren, die UTCString-Darstellung:
quelle
Anstatt ein Array zu deklarieren, das den gesamten Monatsnamen enthält, und dann mit einem Index zu zeigen, können wir es auch in einer kürzeren Version wie folgt schreiben:
quelle
MAY 1, 2015 AT 12:00:00 AM GMT-4
(bei Verwendung von{ month: "long" }
Parametern)new Date().toLocaleString(navigator.language, { month: "short" })
quelle
Das natürliche Format dieser Tage ist die Verwendung von Moment.js.
Die Möglichkeit, den Monat in einem Zeichenfolgenformat abzurufen, ist in Moment.js sehr einfach. Sie müssen die Monatsnamen in Ihrem Code nicht fest codieren: So erhalten Sie den aktuellen Monat und das aktuelle Jahr im Monatsnamenformat und im gesamten Jahr (Mai 2015):
quelle
Luxon
unddate-fns
, aber dann wieder gibt es breite Browser - Unterstützung für die Internationalisierung API heute .Eine andere Möglichkeit, das Datum zu formatieren
quelle
Sie können einen von mehreren verfügbaren Datumsformatierern verwenden. Da dies unter die JavaScript-Spezifikation fällt, wird es sowohl im browser- als auch im serverseitigen Modus verfügbar sein.
z.B
Weitere Informationen finden Sie unter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
quelle
Wenn Sie keine externe Bibliothek verwenden oder ein Array von Monatsnamen speichern möchten oder wenn die ECMAScript Internationalization API aufgrund der Browserkompatibilität nicht gut genug ist, können Sie dies immer auf die altmodische Weise tun, indem Sie die Informationen aus dem extrahieren Datumsausgabe:
Dies würde Ihnen den abgekürzten Monatsnamen geben, z. B. Okt. Ich glaube, das Datum wird abhängig von der Initialisierung und Ihrem Gebietsschema in allen möglichen Formaten vorliegen. Sehen Sie sich also an, was
toDateString()
zurückgibt, und berechnen Sie Ihresubstring()
Werte basierend darauf neu.quelle
Wenn Sie jQuery verwenden, verwenden Sie wahrscheinlich auch die jQuery-Benutzeroberfläche. Dies bedeutet, dass Sie $ .datepicker.formatDate () verwenden können .
quelle
Meine beste Lösung lautet wie folgt:
quelle
Mit momentjs , benutzen Sie einfach die Format - Notation.
quelle
moment
gibt es eine sehr große Bibliothek, und viel zu viel dafür. Moderne Alternativen umfassenLuxon
unddate-fns
, aber dann wieder gibt es breite Browser - Unterstützung für die Internationalisierung API heute .Dies kann auch durchgeführt werden, wenn Sie Kendo verwenden.
Hier ist eine Liste der Formatierer von der Kendo-Site :
quelle
Wenn Sie moment nicht verwenden und den Monatsnamen anzeigen möchten -
quelle
Für mich ist dies die beste Lösung,
auch für TypeScript
Ausgabe ist
quelle
Sie können einfach das Date.toLocaleDateString () verwenden und das gewünschte Datum als Parameter analysieren
Weitere Informationen finden Sie in der Firefox- Dokumentation
quelle
Speichern Sie die Namen in einem Array und suchen Sie nach dem Index des Monats.
JavaScript-Methode getMonth ()
quelle
var month = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];
? Weit kürzer als sie einzeln hinzuzufügen ...Ich habe eine Teillösung, die ich mir ausgedacht habe. Es wird ein regulärer Ausdruck verwendet, um den Monats- und Tagesnamen zu extrahieren. Beim Durchsehen der Optionen für Region und Sprache (Windows) stelle ich jedoch fest, dass verschiedene Kulturen unterschiedliche Formatreihenfolgen haben. Vielleicht könnte ein besseres Muster für reguläre Ausdrücke hilfreich sein.
quelle
Wenn Sie nur jQuery verwenden, können Sie einfach so etwas tun
wo
date
ist gleich demvar d = new Date(somevalue)
. Der Hauptvorteil davon ist laut @nickf die Vermeidung des globalen Namespace.quelle
So erhalten Sie eine Reihe von Monatsnamen:
http://jsfiddle.net/polinux/qb346/
quelle
Schreiben Sie einfach einen einfachen Umschlag herum
toLocaleString
:quelle
Ein schneller Hack, den ich verwendet habe und der gut funktioniert:
quelle