date-light — thư viện tiện ích ngày tháng TypeScript 3.11KB
(date-light.flyingsquirrel.me)Có những lúc bạn muốn thêm một thư viện ngày tháng nhưng lại không cần đủ mọi thứ như locale/timezone/duration/plugin.
date-light là một thư viện tiện ích ngày tháng nhỏ để giải quyết vấn đề đó. Nó chỉ chọn ra các tác vụ ngày tháng thường dùng trên web/app và cung cấp dưới dạng 39 hàm. Không có phụ thuộc runtime, đồng thời bao gồm kiểu TypeScript và các entrypoint ESM/CJS.
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
Cung cấp những gì
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 v.v.
Date đầu vào không bị thay đổi. Mọi hàm đều trả về một Date mới hoặc tính ra giá trị.
Vì sao được tạo ra
Phần lớn ứng dụng chỉ dùng một phần rất nhỏ của thư viện ngày tháng.
Thường chỉ là format ngày, parse chuỗi ISO, cộng thêm vài ngày, tính chênh lệch giữa hai ngày, rồi căn về đầu và cuối của tuần/tháng/năm.
date-light chọn cách chỉ mang theo đúng phạm vi đó. Nó giữ trải nghiệm sử dụng tương tự date-fns, nhưng chỉ gom các tiện ích hay dùng nhất.
Những gì cố ý không có
Không có locale, timezone DB, đối tượng duration, plugin hay chaining API.
Nếu cần các tính năng này thì Intl, Temporal, Luxon, date-fns sẽ phù hợp hơn. date-light là công cụ dành cho lúc bạn chỉ muốn xử lý ngày tháng phổ biến trong ứng dụng theo cách gọn nhẹ.
Kích thước
Với 39 hàm, kích thước khoảng 3.11KB minzipped.
Theo tiêu chí so sánh bundle size trong tài liệu, nó nhỏ hơn khoảng 5.9 lần so với trường hợp lấy 20 hàm tương tự từ date-fns.
GitHub: https://github.com/flyingsquirrel0419/date-light
npm: npm install date-light
docs/playground: https://date-light.flyingsquirrel.me/
Chưa có bình luận nào.