Перевести количество дней php
Подскажите пожалуйста, есть цифра количество дней $days = 678 мне нужно это перевести в годы, месяцы и дни , к примеру $days = 1 год 2 месяца 12 дней
Ответы (2 шт):
$days = 678;
$seconds = $days * 24 * 60 * 60;
$d1 = new DateTime();
$d2 = new DateTime();
$d2->add(new DateInterval('PT'.$seconds.'S'));
$interval = $d2->diff($d1);
echo $interval->format('лет: %y, месяцев: %m, дней: %d, часов: %h, минут: %i');
https://www.php.net/manual/ru/dateinterval.format.php#refsect1-dateinterval.format-parameters - что означает каждый параметр в форматировании даты
Для изучения:
Та вот нифига... Тут кол-во лет, месяцев и дней расчитывается, если число дней прибавить к "сегодня", а если это число дней из периода прошлых или будущих годов - то там может попасться високосный год или отсчет с другого месяца, где бывает 28, 29, 30, 31 день - то будет неправильный результат! Невозможно из абстрактного числа (кол-ва дней) составить кол-во годов, месяцев и дней. Мы ж не знаем откуда начинать считать? От какой даты...