1 điểm bởi flyingsquirrel 5 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

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.

Chưa có bình luận nào.