TypeScript:
So sánh hai ngày

Làm thế nào:

Hãy so sánh một số ngày:

const date1 = new Date('2023-04-01T00:00:00Z');
const date2 = new Date('2023-04-02T00:00:00Z');

// date1 có trước date2 không?
console.log(date1 < date2); // true

// date1 có giống date2 không?
console.log(date1.getTime() === date2.getTime()); // false

// Cách nhau bao nhiêu ngày?
const diffTime = Math.abs(date2.getTime() - date1.getTime());
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); 
console.log(diffDays); // 1

Kết quả mẫu:

true
false
1

Ôn lại

Trước đây, ngày tháng là một đống hỗn độn về định dạng và các tính toán lộn xộn. Với JavaScript (và TypeScript mở rộng), đối tượng Date đã đơn giản hóa mọi thứ, tiêu chuẩn hóa cách chúng ta xử lý thời gian.

Có phương án khác không? Chắc chắn. Các thư viện như moment.js hay date-fns tăng cường khả năng xử lý ngày tháng với chức năng bổ sung. Nhưng đối với các so sánh cơ bản? Sự đơn giản của Native Date thường làm tốt công việc.

Bên trong, Date.getTime() lấy số milliseconds từ kỷ nguyên (ngày 1 tháng 1 năm 1970). So sánh các giá trị này loại bỏ đi những rắc rối về múi giờ và giây nhuận, đưa mọi thứ về con số.

Xem thêm