Cộng hoặc trừ thời gian vào một ngày
Cộng hoặc trừ năm, tháng, tuần và ngày vào một ngày, với cuối tháng được xử lý theo cách mọi người hiểu.
Dời một ngày tới trước hoặc lùi lại một khoảng thời gian mà bạn mô tả bằng năm, tháng, tuần và ngày. Mọi thành phần đều không bắt buộc và có thể kết hợp với nhau.
Cách hoạt động
Năm và tháng được áp dụng trước, dưới dạng tháng. Nếu ngày trong tháng không tồn tại ở tháng bạn đến, nó được điều chỉnh về ngày cuối cùng của tháng đó: một tháng sau ngày 31 tháng 1 là ngày 28 tháng 2, hoặc ngày 29 tháng 2 vào năm nhuận.
Tuần và ngày được cộng sau đó dưới dạng số ngày, sau khi đã điều chỉnh, nên chúng luôn dời ngày đúng bằng số ngày bạn yêu cầu.
Thứ tự là quan trọng và không tùy tiện. Tháng trước rồi đến ngày là quy ước mà mọi ứng dụng lịch đều dùng, và là quy ước duy nhất giúp việc cộng một tháng rồi một ngày cho ra cùng câu trả lời mà một người sẽ đưa ra.
Ví dụ
| Trường hợp | Dữ liệu nhập | Kết quả |
|---|---|---|
| Cộng một tháng vào ngày cuối tháng 1 | 2026-01-31, cộng 1 tháng | 2026-02-28, Thứ Bảy |
Câu hỏi thường gặp
Vì sao một tháng sau ngày 31 tháng 1 không phải là ngày 3 tháng 3?
Vì đó là tràn số, không phải một ngày. PHP tạo ra nó bằng cách cộng một vào tháng và giữ nguyên ngày 31, điều mà tháng 2 không thể chứa. Điều chỉnh về ngày 28 tháng 2 là cách một hợp đồng, một chu kỳ thuê nhà và một con người hiểu “một tháng nữa”.
Múi giờ hay giờ mùa hè có ảnh hưởng đến kết quả không?
Không. Phép tính làm việc trên ngày theo lịch ở UTC, nên một ngày luôn là một ngày. Nếu bạn cần dời một thời điểm cụ thể giữa các múi giờ, công cụ phù hợp là công cụ chuyển đổi múi giờ.
Có bỏ qua cuối tuần hay ngày lễ không?
Không, mọi ngày đều được tính. Chỉ đếm ngày làm việc là một câu hỏi khác, và máy tính ngày làm việc trả lời câu hỏi đó với tuần làm việc và danh sách ngày lễ do bạn cung cấp.
Cần biết
- Các ngày được xử lý như ngày theo lịch ở UTC; không áp dụng điều chỉnh múi giờ hay giờ mùa hè nào.
- Cộng rồi trừ cùng một khoảng thời gian không phải lúc nào cũng đưa về ngày ban đầu. Đó là đặc tính của độ dài các tháng chứ không phải lỗi: một khi ngày 31 tháng 1 đã được điều chỉnh về ngày 28 tháng 2, thông tin rằng nó từng là ngày 31 đã mất.