date — учитывая количество дней в PHP, как рассчитать годы, месяцы и дни из него?

Я храню дни в базе данных 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 месяца. Я нашел это где-то в Интернете, и до недавнего времени оно работало хорошо.

Может кто-нибудь дать мне несколько советов о лучшем способе сделать это, или с какими-либо ошибками в моем коде?

1

Решение

Сделайте это, как показано ниже:

<?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

1

Другие решения

Поскольку не указана определенная дата, Вы можете сделать это

<?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

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector