Bài tập cộng thêm tháng vào thời gian php

Theo kế hoạch thì phần thời gian trong php mình đã kết thúc ở bài trước. Tuy nhiên có bạn mail nhờ hướng dẫn cách cộng thêm 1 tháng vào thời gian, ví dụ ngày 05/10/2017 cộng một tháng đến ngày 05/11/2017. Vì theo hướng dẫn ở bài trước thì việc cộng thời gian tính theo ngày nên đổi ra số giây được còn tháng thì có tháng 28 ngày, có tháng 29 ngày… Và cộng thêm hay trừ thêm đơn vị tháng cũng khá phổ biến nên mình tiếp tục viết thêm bài này.

cộng-thêm-tháng-vào-thời-gian

 

Xem toàn bộ chuyên đề:

1. Ý tưởng

Trong mail bạn viết cách cộng, mình tạm viết lại như sau:

Ý tưởng của bạn đó là 1 tháng sẽ có 28, 29, 30 hoặc 31 ngày. Vậy chỉ cần cộng lần lượt cộng 28, 29, 30, 31 ngày vào ngày hiện tại đã được đổi ra timestamp. và kiểm tra ngày lấy ra từ kết quả timestamp sau khi cộng nếu đúng ngày với ngày nhập vào thì return kết quả.

Ngoài ra bạn cũng có thể viết đơn gian hơn là lấy tháng cộng cho 1, nếu kiểm tra tháng 12 thì tháng bằng 1 và năm tăng 1.

Về mặt logic rõ ràng là không sai, trong trường hợp cộng 5, 7 tháng thì rõ ràng bạn sẽ phải cộng từ tháng 1. Khá bất tiện chính vì thế hôm nay mình viết thêm bài tập này để giới thiệu cộng trực tiếp trong hàm mktime.

2. Cộng thêm tháng vào thời gian php

Với hàm mktime, bạn sẽ điền vào các tham số hour, minute, second, month, day, year. Đây là các số nguyên, và có thể cộng thêm được. Từ ví dụ này bạn có thể mở rộng ra cộng ngày, cộng thêm tháng, cộng thêm năm hay giờ, phút giây mà không cần đổi ra giây.

1. Cụ thể

Ở đây, khi dùng hàm date_parse_from_format chúng ta sẽ có một mảng các phần tử hour, minute, second, month, day, year đều là số nguyên, khi đổi ra timestamp ở phần tham số tháng, mình truyền vào  $time['month'] + 1 các bạn có thể cộng tương tự cho những tham số khác với những giá trị khác.

3. Lời kết

Như vậy việc kết hợp date_parse_from_format và hàm mktime sẽ giúp chúng ta giải quyết bài tập này đơn giản hơn nhiều.

 

 

Bài tập cộng thêm tháng vào thời gian php
5 (100%) 3 votes

Add Comment