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

Arbeiten mit Daten in JavaScript (Node.js): Überblick über beliebte Bibliotheken



Die Arbeit mit Datum und Zeit gehört zu den häufigsten Aufgaben in der Webentwicklung. Das eingebaute Date-Objekt in JavaScript (Node.js) bietet grundlegende Funktionen, erweist sich jedoch oft als umständlich und eingeschränkt: Es fehlen bequeme Formatierung, Parsing, Manipulation von Zeitzonen und die Berechnung von Differenzen zwischen Daten. Glücklicherweise gibt es mehrere ausgereifte Bibliotheken, die diese Probleme lösen. In diesem Artikel betrachten wir vier der beliebtesten Werkzeuge für die Arbeit mit Daten in Node.js.



1. Moment.js – der Klassiker (mit Einschränkungen)

Moment.js war lange Zeit der De-facto-Standard für die Arbeit mit Daten in JavaScript. Es bietet eine umfangreiche API zum Parsen, Validieren, Formatieren und Manipulieren von Daten.



Installation:

npm install moment


Anwendungsbeispiel:

const moment = require('moment');

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

// Parsen eines Stringsconst date = moment('2025-12-25', 'YYYY-MM-DD');console.log(date.format('dddd, MMMM Do YYYY')); // Thursday, December 25th 2025

// Manipulationenconst future = moment().add(7, 'days').subtract(2, 'hours');console.log(future.fromNow()); // "in 6 days"

// Differenz zwischen Datenconst a = moment('2025-01-01');const b = moment('2025-03-21');console.log(b.diff(a, 'days')); // 79


Vorteile: riesige Community, detaillierte Dokumentation, zahlreiche Plugins (Arbeit mit Zeitzonen, Lokalisierung).

Nachteile: Die Bibliothek ist veraltet (Wartungsmodus), große Größe (~230 KB), mutierende Methoden (ändern das ursprüngliche Objekt). Die Entwickler empfehlen die Verwendung moderner Alternativen.



2. date-fns – modularer und funktionaler Ansatz

date-fns ist eine moderne Bibliothek, die auf den Prinzipien der funktionalen Programmierung aufbaut. Jede Funktion ist ein separates Modul, sodass nur die benötigten Teile eingebunden werden können, was die Bundle-Größe reduziert.



Installation:

npm install date-fns


Anwendungsbeispiel:

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

// Formatierungconst now = new Date();console.log(format(now, 'yyyy-MM-dd HH:mm:ss')); // 2025-03-21 14:30:00

// Manipulationen (immutabel – es wird ein neues Objekt erstellt)const future = addDays(now, 7);const adjusted = subHours(future, 2);console.log(format(adjusted, 'dd.MM.yyyy')); // 28.03.2025

// Differenzconst start = parseISO('2025-01-01');const end = new Date();console.log(differenceInDays(end, start)); // 79

// Lokalisierung (Russisch)const { ru } = require('date-fns/locale');console.log(format(now, 'PPPP', { locale: ru })); // "пятница, 21 марта 2025 г."


Vorteile: Modularität, Immutabilität (ändert die ursprünglichen Objekte nicht), TypeScript-Unterstützung, hervorragende Dokumentation.

Nachteile: Erfordert Node.js 14+, keine integrierte Unterstützung für Zeitzonen (erfordert date-fns-tz).



3. Day.js – leichte und schnelle Alternative zu Moment.js

Day.js ist eine minimalistische Bibliothek (nur 2 KB), deren API fast vollständig mit Moment.js kompatibel ist. Sie ist ideal geeignet, wenn Moment.js ersetzt werden soll, ohne den Code umschreiben zu müssen.



Installation:

npm install dayjs


Anwendungsbeispiel:

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

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

// Basisverwendung (wie in Moment)const now = dayjs();console.log(now

Empfehlungen