JavaScript bietet verschiedene effiziente Möglichkeiten, den Namen eines Monats aus einem Datums-Objekt abzurufen. Dieser Artikel untersucht drei gängige Methoden, die jeweils einzigartige Vor- und Nachteile bieten.
Inhaltsverzeichnis
- Verwendung der
toLocaleString
-Funktion - Verwendung des
Intl.DateTimeFormat
-Objekts - Erstellen einer benutzerdefinierten Funktion
Verwendung der toLocaleString
-Funktion
Die Methode toLocaleString()
bietet eine prägnante Möglichkeit, Datumsangaben entsprechend der Gebietsschemas des Benutzers zu formatieren. Dies stellt sicher, dass der Monatsname in der bevorzugten Sprache angezeigt wird. Es erfordert jedoch eine sorgfältige Behandlung, um den Monatsnamen zu isolieren.
const date = new Date();
const monthName = date.toLocaleString('default', { month: 'long' });
console.log(monthName); // Ausgabe: (z.B., "Oktober", "November", usw.)
// Gebietsschema angeben:
const frenchMonthName = date.toLocaleString('fr-FR', { month: 'long' });
console.log(frenchMonthName); // Ausgabe: (z.B., "octobre", "novembre", usw.)
Das Gebietsschema 'default'
verwendet die Browsereinstellungen des Benutzers. Sie können Gebietsschemas wie 'fr-FR'
(Französisch) oder 'es-ES'
(Spanisch) angeben. Die Option month: 'long'
fordert den vollständigen Monatsnamen an; verwenden Sie month: 'short'
für Abkürzungen.
Verwendung des Intl.DateTimeFormat
-Objekts
Das Intl.DateTimeFormat
-Objekt bietet eine granularere Steuerung der Datumsformatierung als toLocaleString()
, wodurch komplexe Anpassungen und eine bessere Gebietsschema-Handhabung ermöglicht werden.
const date = new Date();
const options = { month: 'long' };
const formatter = new Intl.DateTimeFormat('default', options); // Oder Gebietsschema angeben: 'fr-FR'
const monthName = formatter.format(date);
console.log(monthName); // Ausgabe: (z.B., "Oktober", "November", usw.)
// Beispiel mit kurzem Monatsnamen:
const optionsShort = { month: 'short' };
const formatterShort = new Intl.DateTimeFormat('default', optionsShort);
const shortMonthName = formatterShort.format(date);
console.log(shortMonthName); // Ausgabe: (z.B., "Okt", "Nov", usw.)
Obwohl ausführlicher, bietet dieser Ansatz größere Flexibilität. Das einmaliges Erstellen eines DateTimeFormat
-Objekts und dessen Wiederverwendung verbessert die Effizienz bei mehreren Datumsangaben.
Erstellen einer benutzerdefinierten Funktion
Obwohl weniger effizient und ohne automatische Lokalisierung, zeigt eine benutzerdefinierte Funktion den zugrunde liegenden Mechanismus. Dieser Ansatz ist im Allgemeinen weniger bevorzugt als die integrierten Methoden.
const monthNames = ["Januar", "Februar", "März", "April", "Mai", "Juni",
"Juli", "August", "September", "Oktober", "November", "Dezember"
];
function getMonthName(date) {
return monthNames[date.getMonth()];
}
const date = new Date();
const monthName = getMonthName(date);
console.log(monthName); // Ausgabe: (z.B., "Oktober", "November", usw.)
Diese Funktion verwendet ein Array, um Monatsnummern (0-11) ihren Namen zuzuordnen. Beachten Sie, dass date.getMonth()
einen nullbasierten Index zurückgibt.
Zusammenfassend lässt sich sagen, dass toLocaleString()
und Intl.DateTimeFormat
aufgrund ihrer integrierten Lokalisierung empfohlen werden. Die benutzerdefinierte Funktion sollte nur verwendet werden, wenn spezifische, nicht standardmäßige Anforderungen bestehen.