Я храню дни в базе данных Mysql, и я пытаюсь отформатировать эти дни в формате год, месяц, дни. Моя переменная, в которой хранятся дни, называется $days
Вот что у меня есть:
$years = ($days / 365);
$years = floor($years);
$month = ($days % 365) / 30.5;
$month = floor($month);
$days = ($days % 365) % 30.5;
$display = "$years" . " years, " . "$month" . " months, and " . "$days" . " days";
Однако, когда у меня есть дни, равные 90, они просто отображаются как 2 месяца и ничего не показывают за дни, только 2 месяца. Я нашел это где-то в Интернете, и до недавнего времени оно работало хорошо.
Может кто-нибудь дать мне несколько советов о лучшем способе сделать это, или с какими-либо ошибками в моем коде?
Сделайте это, как показано ниже:
<?php
$days = '365';
$start_date = new DateTime(date("Y/m/d"));
$end_date = new DateTime(date("Y/m/d",strtotime("+$days days")));
$dd = date_diff($start_date,$end_date);
echo "$dd->y year(s) $dd->m month(s) $dd->d day(s)";
?>
Выход:- https://eval.in/918854 А ТАКЖЕ https://eval.in/918858
Поскольку не указана определенная дата, Вы можете сделать это
<?php
$days = 500;
$years = intval($days / 365);
$days = $days % 365;
$months = intval($days / 30);
$days = $days % 30;
echo "$years years, $months months, $days days";
?>
Живая демоверсия: https://eval.in/918861
Выход будет как: 1 years, 4 months, 15 days