JavaScript:
Tính toán ngày trong tương lai hoặc quá khứ
Cách thực hiện:
Đối tượng Date
trong JavaScript là công cụ bạn cần để làm “gymnastics” với ngày tháng. Hãy thử với một số ví dụ:
// Ngày hôm nay
let today = new Date();
console.log(today); // Xuất ra ngày và thời gian hiện tại
// Tính toán một ngày cách 7 ngày trong tương lai
let nextWeek = new Date();
nextWeek.setDate(today.getDate() + 7);
console.log(nextWeek); // Xuất ra ngày cùng thời điểm, 7 ngày về sau
// Tính toán một ngày cách 30 ngày trong quá khứ
let lastMonth = new Date();
lastMonth.setDate(today.getDate() - 30);
console.log(lastMonth); // Xuất ra ngày cùng thời điểm, 30 ngày trước
// Đặt một ngày 1 năm trong tương lai
let nextYear = new Date();
nextYear.setFullYear(today.getFullYear() + 1);
console.log(nextYear); // Xuất ra ngày cùng thời điểm vào năm sau
Kết quả xuất ra phụ thuộc vào thời điểm bạn chạy mã này, vì today
là ngày-giờ hiện tại của bạn.
Đi sâu hơn
Trước khi JavaScript có chức năng tính toán ngày tháng được tích hợp sẵn, các lập trình viên phải tính toán ngày một cách thủ công, tính đến sự khác biệt về độ dài các tháng, năm nhuận, và múi giờ - một việc thực sự phiền phức! Với Date
, phần lớn những phiền toái này biến mất.
Các lựa chọn thay thế cho đối tượng Date
bản địa bao gồm các thư viện như moment.js
và date-fns
, cung cấp cú pháp phong phú hơn và giải quyết những vấn đề như lỗi giờ mùa hè.
Khi tính toán ngày, nhớ rằng: Date
đếm các tháng từ 0 (Tháng Một) đến 11 (Tháng Mười Hai), không phải từ 1-12. Và đừng quên năm nhuận khi làm việc với ngày của Tháng Hai.
Xem thêm
- Tài liệu MDN Web về Date: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
- moment.js: https://momentjs.com/
- date-fns: https://date-fns.org/