Làm việc với ngày tháng năm 2020 vẫn còn là một mớ hỗn độn. Có lẽ, chúng cũng sẽ hoạt động lộn xộn trong năm 2021, 2022 và trong một thời gian dài sau đó. Nhiều người [bao gồm cả tôi] tìm đến thư viện ngày tháng để lấp đầy khoảng trống
Trong nhiều năm. js thống trị tối cao và vì lý do chính đáng, nó có thể làm mọi thứ với ngày tháng, kể cả làm việc với các múi giờ khác nhau. Thật không may, Moment cũng có thể dẫn đến phình to gói
Và rồi đến date-fns. Nó có thể làm hầu hết mọi thứ mà Moment đã làm và đủ tốt cho 95% tất cả các trường hợp sử dụng liên quan đến ngày và giờ. Tuy nhiên, tùy thuộc vào nhiệm vụ, bạn vẫn có thể sử dụng Javascript gốc để làm việc với ngày tháng
Một nhiệm vụ mà tôi đã làm gần đây là cần tính toán một ngày kể từ hôm nay, kịch bản của tôi là sáu tháng, nhưng giải pháp mà tôi sắp chỉ cho bạn có thể được thay đổi thành bất kỳ giá trị nào và hoạt động trong nhiều ngày, v.v.
const SIX_MONTHS_AGO = new Date[]; SIX_MONTHS_AGO.setMonth[SIX_MONTHS_AGO.getMonth[] - 6];
Chúng tôi tạo một đối tượng ngày mới, sau đó chúng tôi đặt tháng thành giá trị tháng của chúng tôi trừ đi 6 [trong đó 6 là số tháng chúng tôi muốn quay lại]. Bạn cũng có thể thay đổi điều này để có thể tiến tới 6 tháng trong tương lai bằng cách thay đổi điểm trừ thành điểm cộng
Cuối cùng, nếu bạn muốn so sánh ngày và lấy một ngày và xác định xem nó có cũ hơn sáu tháng hay không, chúng ta có thể làm như sau
export const compareDates = [a: string | Date, b: string | Date]: boolean => { const dateA = new Date[a].getTime[]; const dateB = new Date[b].getTime[]; return dateB > dateA; }
Điều này sẽ xác định xem giá trị thứ hai được cung cấp cho hàm của chúng ta có lớn hơn giá trị đầu tiên được cung cấp hay không. Giá trị đầu tiên là cơ sở và giá trị thứ hai là giá trị so sánh
Nếu bạn gọi compareDates
với SIX_MONTHS_AGO
là đối số đầu tiên và new Date[]
là đối số thứ hai, chúng tôi biết kết quả sẽ đúng vì ngày hôm nay chắc chắn cũ hơn sáu tháng trước
compareDates[SIX_MONTHS_AGO, new Date[]]
Không cần thêm thư viện. Tôi đồng ý rằng cú pháp hơi khô khan so với API đẹp hơn của Moment và date-fns, nhưng nó vẫn là một tùy chọn nhẹ hơn và khả thi
Để thêm tháng vào một ngày trong JavaScript, bạn có thể sử dụng phương thức Date. phương thức setMonth[]. Phương thức date setMonth[] trong JavaScript đặt tháng cho một ngày cụ thể theo giờ địa phương. Phương thức này nhận 2 tham số đầu tiên là số tháng và tham số thứ hai là số ngày. Việc đếm tháng bắt đầu từ 0, ví dụ: 0 đại diện cho tháng 1, 1 đại diện cho tháng 2. và như thế
cú pháp
Date.setMonth[monthsValue , [daysValue]];
Lưu ý - Các tham số trong ngoặc luôn là tùy chọn
Thông số chi tiết
monthsValue − Một số nguyên từ 0 đến 11, đại diện cho các tháng. Mặc dù chúng ta cũng có thể sử dụng số lớn hơn 11 hoặc nhỏ hơn 0. Ví dụ: -1 đại diện cho tháng cuối cùng của năm trước và 12 đại diện cho tháng đầu tiên của năm tiếp theo
daysValue − Một số nguyên từ 1 đến 31, đại diện cho ngày trong tháng. Nếu bạn chỉ định tham số daysValue, bạn cũng phải chỉ định monthsValue. Bạn cũng có thể chỉ định số lớn hơn 31 và nhỏ hơn 1. Ví dụ: 0 đại diện cho ngày cuối cùng của tháng trước và -1 đại diện cho ngày trước ngày cuối cùng của tháng trước. 32 đại diện cho ngày đầu tiên của tháng tiếp theo
thuật toán
BƯỚC 1 - Đầu tiên, chúng tôi lấy ngày hiện tại hoặc xác định ngày và hiển thị ngày đó
BƯỚC 2 - Tiếp theo, chúng ta lấy tháng của ngày hiện tại bằng phương thức getMonth[]
BƯỚC 3 – Xác định số tháng sẽ được thêm vào
BƯỚC 4 – Đặt tháng của ngày bằng cách sử dụng setMonth[] và hiển thị ngày được cập nhật
Để thêm tháng vào đối tượng Date bằng phương thức setMonth, trước tiên chúng ta lấy giá trị tháng của Ngày hiện tại bằng phương thức getMonth[], sau đó cộng một số tháng vào đó và chuyển giá trị đã thêm vào phương thức setMonth[]
Thí dụ
Trong ví dụ dưới đây, chúng tôi thêm 3 tháng vào ngày hiện tại và hiển thị ngày hiện tại và ngày cập nhật. Chúng tôi sử dụng các phương thức getMonth[] và setMonth[] để lấy tháng hiện tại và đặt tháng mới
Add 3 months to the current date/time.
Current Date :
Updated Date:
Thí dụ
Trong ví dụ bên dưới, chúng tôi lấy ngày là "20 tháng 8 năm 2023 11. 30. 25". Chúng tôi thêm hai tháng vào ngày này. Chúng tôi hiển thị cả hai - ngày trước đó và ngày cập nhật
Add 2 months to the current date/time.
Old Date :
Updated Date:
Thí dụ
Trong ví dụ này, chúng tôi đang thêm 4 tháng vào Ngày hiện tại. Chúng tôi hiển thị ngày hiện tại và cập nhật ở định dạng MM/DD/YYYY
Click on the button to add 4 months to the current date [MM/DD/YYYY].
Click MeCurrent Date :
Updated Date:
Lưu ý - Định dạng của ngày là MM/DD/YYYY
Trong hướng dẫn này, chúng ta đã thảo luận cách thêm tháng vào ngày tháng. Chúng tôi sử dụng hai phương pháp cho mục đích này. Một là phương thức getMonth[] để lấy tháng của ngày. Và thứ hai là phương thức setMonth[] để đặt tháng của ngày bằng một tháng mới