JavaScript Date Handling

Effizient Monatsnamen in JavaScript erhalten

Spread the love

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

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert