<?php
function add_one_month($date) {
// find the next month
$nextmonth = mktime(0, 0, 0, date("n", $date) + 1, 1, date("Y", $date));
// limit the day number according to the month
$day = min(date("t", $nextmonth), date("j", $date));
// combine into desired date
return mktime(0, 0, 0, date("n", $nextmonth), $day, date("Y", $nextmonth));
}
for ($d = 20; $d <= 31; $d++) {
$date = mktime(0, 0, 0, 1, $d, 2017);
$normal = date("Y-m-d", strtotime("+1 month", $date));
$addonemonth = date("Y-m-d", add_one_month($date));
printf("2017-01-%02d: +1 month = %s add_one_month = %s\n", $d, $normal, $addonemonth);
}
- Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- 2017-01-20: +1 month = 2017-02-20 add_one_month = 2017-02-20
2017-01-21: +1 month = 2017-02-21 add_one_month = 2017-02-21
2017-01-22: +1 month = 2017-02-22 add_one_month = 2017-02-22
2017-01-23: +1 month = 2017-02-23 add_one_month = 2017-02-23
2017-01-24: +1 month = 2017-02-24 add_one_month = 2017-02-24
2017-01-25: +1 month = 2017-02-25 add_one_month = 2017-02-25
2017-01-26: +1 month = 2017-02-26 add_one_month = 2017-02-26
2017-01-27: +1 month = 2017-02-27 add_one_month = 2017-02-27
2017-01-28: +1 month = 2017-02-28 add_one_month = 2017-02-28
2017-01-29: +1 month = 2017-03-01 add_one_month = 2017-02-28
2017-01-30: +1 month = 2017-03-02 add_one_month = 2017-02-28
2017-01-31: +1 month = 2017-03-03 add_one_month = 2017-02-28
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
2017-01-20: +1 month = 2017-02-20 add_one_month = 2017-02-20
2017-01-21: +1 month = 2017-02-21 add_one_month = 2017-02-21
2017-01-22: +1 month = 2017-02-22 add_one_month = 2017-02-22
2017-01-23: +1 month = 2017-02-23 add_one_month = 2017-02-23
2017-01-24: +1 month = 2017-02-24 add_one_month = 2017-02-24
2017-01-25: +1 month = 2017-02-25 add_one_month = 2017-02-25
2017-01-26: +1 month = 2017-02-26 add_one_month = 2017-02-26
2017-01-27: +1 month = 2017-02-27 add_one_month = 2017-02-27
2017-01-28: +1 month = 2017-02-28 add_one_month = 2017-02-28
2017-01-29: +1 month = 2017-03-01 add_one_month = 2017-02-28
2017-01-30: +1 month = 2017-03-02 add_one_month = 2017-02-28
2017-01-31: +1 month = 2017-03-03 add_one_month = 2017-02-28
preferences:
251.8 ms | 403 KiB | 290 Q