Почему секунды и минуты не рассчитываются правильно в codeigniter? - PullRequest
0 голосов
/ 09 сентября 2018

Я сейчас создаю проект CI и столкнулся с следующей проблемой. Я хочу показать текст "опубликовано" X "время назад", и я нашел сценарий в Интернете, но секунды и минуты не отображаются должным образом.

Я уже искал по всей сети, но ничего не смог найти.

Вот моя функция:

$today = time();
$createdday = mysql_to_unix($ptime); 
$datediff = abs($today - $createdday);
$difftext = "";
$years = floor($datediff / (365 * 60 * 60 * 24));
$months = floor(($datediff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
$days = floor(($datediff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24));
$hours = floor($datediff / 3600);
$minutes = floor($datediff / 60);
$seconds = floor($datediff);

Вот полная пастбина https://pastebin.com/tzBN2gZW

Есть мысли по этому поводу?

Спасибо

1 Ответ

0 голосов
/ 09 сентября 2018

Произошла ошибка, потому что вы не уменьшаете дату после подсчета дней. Но я думаю, что для такого расчета лучше использовать объекты DateTime

$today = time();
$createdday = mysql_to_unix($ptime);
$today_d = new DateTime();
$today_d->setTimestamp($today);
$createdday_d = new DateTime();
$createdday_d->setTimestamp($createdday);
print_r($today_d->diff($createdday_d));

демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...