Добрый день!
Есть задача, определения количества полных месяцев между датами. Написал вот такой код:
$datetime1 = new DateTime(date("Y-m-d", $date1));
$datetime2 = new DateTime(date("Y-m-d", $date2));
$interval = $datetime1->diff($datetime2);
$month = $interval->format('%m')+$interval->format('%y')*12;
результат выполнения данного скрипта для интервала дат 2016-11-30 - 2017-03-01 выдаёт 2. Когда очевидно, что должно быть 3. В чём может быть проблема?
Всего-лишь предположение: количество месяцев высчитывается исходя из среднего количества дней в месяце.
<?php
$datetime1 = new DateTime('2016-11-30');
$datetime2 = new DateTime('2017-03-01');
$interval = $datetime1->diff($datetime2);
var_dump($interval->days / 30.4375); // 30.4375 среднее количество дней в месяце за период в четыре года
$month = $interval->m + $interval->y * 12;
var_dump($month);
Результат
float(2.9897330595483)
int(2)
Для
$datetime1 = new DateTime('2016-11-30');
$datetime2 = new DateTime('2017-03-01');
Результат
float(3.0225872689938)
int(3)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости