Давайте предположим, что у меня есть две даты в переменных, как
$date1 = "2009-09-01";
$date2 = "2010-05-01";
Я должен получить количество месяцев между $date2
и $date1
($date2 >= $date1
). Т.е. я должен добраться 8
.
Существует ли способ получить его при помощи функции даты, или я должен взорвать свои строки и сделать некоторые вычисления?
Большое спасибо
strtotime не очень точен, он проводит приблизительный подсчет, он не принимает во внимание фактические дни месяца.
лучше принести даты ко дню, который всегда присутствует в каждом месяце.
$date1 = "2009-09-01";
$date2 = "2010-05-01";
$d1 = mktime(0, 0, 1, date('m', strtotime($date1)), 1, date('Y', strtotime($date1)));
$d2 = mktime(0, 0, 1, date('m', strtotime($date2)), 1, date('Y', strtotime($date2)));
$total_month = 0;
while (($d1 = strtotime("+1 MONTH", $d1)) <= $d2) {
$total_month++;
}
echo $total_month;