@ronni10

Как получить разницу двух дат в месяцах?

Значит есть 2 даты. Нужна разница между ними в месяцах, но способы, которые я нашел не подходят. Дело в том что если есть 2 даты 2020-01-15 и 2020-02-13 , то например функция date_diff() выдает 0 потому что 30 дней нету между датами, а мне нужно что бы 1ое число следующего месяца - это плюс один месяц уже. То есть 2020-01-31 и 2020-02-01 уже разница 1 месяц.
  • Вопрос задан
  • 922 просмотра
Пригласить эксперта
Ответы на вопрос 4
SagePtr
@SagePtr
Еда - это святое
А что мешает математически посчитать (Y2*12 + M2) - (Y1*12 + M1) ?
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
см класс DatePeriod
Ответ написан
Комментировать
@ronni10 Автор вопроса
$date1 = new DateTime("2020-01-15");

$date1->modify('first day of this month');

$date2 = new DateTime("2020-02-13");

$date2->modify('last day of this month');

$diff = $date1->diff($date2);

echo "difference " . $diff->m." months";
Ответ написан
Tomio
@Tomio
backend developer (python, php)
Используйте библиотеку Carbon:
$this_month = Carbon::parse('2019-07-05')->floorMonth(); // returns 2019-07-01
$start_month = Carbon::parse('2019-06-30')->floorMonth(); // returns 2019-06-01
$diff = $start_month->diffInMonths($this_month);  // returns 1
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы