date-light — 3,11 KB TypeScript-Datums-Utility-Bibliothek
(date-light.flyingsquirrel.me)Manchmal möchte man eine Datumsbibliothek einsetzen, braucht aber nicht gleich alles inklusive Locale/Timezone/Duration/Plugins.
date-light ist eine kleine Datums-Utility-Bibliothek, die genau dieses Problem lösen soll. Sie bietet 39 Funktionen, die nur die Datumsoperationen abdecken, die in Web-/App-Projekten häufig gebraucht werden. Es gibt keine Runtime-Abhängigkeiten, und TypeScript-Typen sowie ESM/CJS-Entrypoints sind enthalten.
import { addDays, differenceInDays, format, startOfWeek } from "date-light";
const launch = new Date(2026, 5, 30, 14, 30);
const reminder = addDays(launch, -7);
format(launch, "yyyy-MM-dd HH:mm"); // "2026-06-30 14:30"
format(startOfWeek(launch), "yyyy-MM-dd"); // "2026-06-29"
differenceInDays(launch, reminder); // 7
Was es bietet
format, parseISO, parse
addDays, addMonths, addYears, addHours, subDays, subMonths...
differenceInDays, differenceInMonths, differenceInYears
isBefore, isAfter, isEqual, isSameDay, isSameMonth
isWeekend, isLeapYear, isValid, getDaysInMonth
startOfDay, endOfWeek, startOfMonth, endOfYear usw.
Eingegebene Date-Objekte werden nicht verändert. Alle Funktionen geben entweder ein neues Date zurück oder berechnen einen Wert.
Warum es entwickelt wurde
Die meisten Apps nutzen nur einen sehr kleinen Teil einer Datumsbibliothek.
Üblicherweise formatiert man Datumswerte, parst ISO-Strings, addiert ein paar Tage, berechnet die Differenz zwischen zwei Datumswerten oder richtet sie auf Anfang und Ende von Woche/Monat/Jahr aus.
date-light konzentriert sich bewusst nur auf diesen Bereich. Es behält ein ähnliches Nutzungsgefühl wie date-fns bei, bündelt aber nur häufig verwendete Utilities.
Was bewusst fehlt
Es gibt keine Locale-Unterstützung, keine Timezone-Datenbank, keine Duration-Objekte, keine Plugins und keine Chaining-API.
Wenn solche Funktionen benötigt werden, passen Intl, Temporal, Luxon oder date-fns besser. date-light ist ein Werkzeug für alle, die allgemeine Datumsverarbeitung in Apps möglichst klein halten möchten.
Größe
Bei 39 Funktionen liegt die Größe bei etwa 3,11 KB minzipped.
Laut dem Vergleich der Bundle-Größe in der Dokumentation ist es beim Einsatz von vergleichbaren 20 Funktionen etwa 5,9-mal kleiner als date-fns.
GitHub: https://github.com/flyingsquirrel0419/date-light
npm: npm install date-light
docs/playground: https://date-light.flyingsquirrel.me/
Noch keine Kommentare.