Arbeiten mit Daten in JavaScript (Node.js): beliebte Bibliotheken

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Überblick über Bibliotheken für die Arbeit mit Daten in JavaScript (Node.js)



Die Arbeit mit Daten gehört zu den häufigsten und gleichzeitig komplexesten Aufgaben in der Webentwicklung. In JavaScript hat das native Date-Objekt einige Nachteile: Veränderlichkeit (Mutabilität), eingeschränkte Formatierungs- und Parsing-Möglichkeiten sowie Probleme mit Zeitzonen. Glücklicherweise bietet das Node.js-Ökosystem mehrere leistungsstarke Bibliotheken, die die Datenmanipulation erheblich vereinfachen. In diesem Artikel betrachten wir die vier beliebtesten: Moment.js, Day.js, date-fns und Luxon.



1. Moment.js – der Klassiker



Lange Zeit war Moment.js der De-facto-Standard für die Arbeit mit Daten. Es bietet eine umfangreiche API zum Parsen, Validieren, Manipulieren und Anzeigen von Daten. Die Bibliothek gilt jedoch als veraltet (Maintenance-Modus) und wird aufgrund ihrer Größe (ca. 300 KB) und Performance-Problemen nicht mehr für neue Projekte empfohlen.



Installation:

npm install moment


Anwendungsbeispiele:

const moment = require('moment');

// Aktuelles Datumconst now = moment();console.log(now.format('YYYY-MM-DD HH:mm:ss')); // 2025-03-15 14:30:00

// Parsen eines Stringsconst date = moment('2025-12-31', 'YYYY-MM-DD');console.log(date.add(1, 'day').format('DD.MM.YYYY')); // 01.01.2026

// Differenz zwischen Datenconst start = moment('2025-01-01');const end = moment('2025-03-15');console.log('Tage vergangen:', end.diff(start, 'days')); // 73


2. Day.js – eine leichte Alternative



Day.js ist eine minimalistische Bibliothek (nur 2 KB), die API-kompatibel mit Moment.js ist. Sie ist ideal für Projekte, bei denen die Bundle-Größe wichtig ist. Day.js unterstützt Plugins zur Erweiterung der Funktionalität (Zeitzonen, relative Zeitangaben usw.).



Installation:

npm install dayjs


Anwendungsbeispiele:

const dayjs = require('dayjs');const relativeTime = require('dayjs/plugin/relativeTime');const utc = require('dayjs/plugin/utc');

dayjs.extend(relativeTime);dayjs.extend(utc);

// Aktuelles Datumconsole.log(dayjs().format('DD.MM.YYYY')); // 15.03.2025

// Relative Zeitconsole.log(dayjs('2025-03-10').fromNow()); // vor 5 Tagen

// Arbeiten mit UTCconsole.log(dayjs.utc().format()); // 2025-03-15T11:30:00Z


3. date-fns – funktionaler Ansatz



date-fns ist eine moderne Bibliothek, die auf den Prinzipien der funktionalen Programmierung basiert. Im Gegensatz zu Moment.js verwendet sie keine veränderlichen Objekte und unterstützt Tree-Shaking, sodass nur die benötigten Funktionen importiert werden können, was die Bundle-Größe reduziert.



Installation:

npm install date-fns


Anwendungsbeispiele:

const { format, addDays, differenceInDays, parseISO } = require('date-fns');const { ru } = require('date-fns/locale');

// Formatierung mit Localeconsole.log(format(new Date(), 'd MMMM yyyy', { locale: ru })); // 15 марта 2025

// Manipulationenconst future = addDays(new Date(), 10);console.log(format(future, 'yyyy-MM-dd')); // 2025-03-25

// Differenzconst d1 = parseISO('2025-01-01');const d2 = new Date();console.log('Tage seit Neujahr:', differenceInDays(d2, d1)); // 73


4. Luxon – der moderne Standard



Luxon ist eine Bibliothek der Entwickler von Moment.js, jedoch ohne deren Nachteile. Sie verwendet native DateTime-, Duration- und Interval-Objekte und unterstützt Zeitzonen sowie Internationalisierung "out of the box". Luxon ist ideal für komplexe Szenarien mit Zeitzonen.



Installation:

npm install luxon                    

Empfehlungen