Как рассчитать время, прошедшее с PHP или Zend_Date?

Я пытаюсь создать помощник вида, который отобразит количество минут, часов или дней, прошедших с тех пор … прямо сейчас. Я не уверен, как это сделать. Похоже, что сравнение дат работает, но я не знаю, как получить номер. Вот что я до сих пор:

<?php class Zend_View_Helper_RecentDate { public function recentDate($datetime) { $date = new Zend_Date($datetime); switch ($date) { case($date->isEarlier(1, Zend_Date::HOUR)): $message = 'was minutes ago'; break; case($date->isEarlier(24, Zend_Date::HOUR)): $message = 'was hours ago'; break; case($date->isEarlier(48, Zend_Date::HOUR)): $message = 'Yesterday'; break; default: $message = 'was days ago'; break; } return $message; } } 

Я хочу заменить «было» фактическим количеством минут / часов / дней.

Поскольку вы уже используете Zend Framework, в TimeSince Framework есть TimeSince вида TimeSince , который представляет собой библиотеку дополнительных расширений ZF и помощников.

TimeSince делает в основном то, что вы пытаетесь сделать:

 Last updated <?= $this->timeSince($timestamp); ?> ago 

Выведет что-то вроде:

 Last updated 8 hours ago 

$ time = sprintf ("% d часов,% d минут и% d секунд \ n", $ s / (1000 * 60 * 60), $ s / (1000 * 60), $ s);

Где $ s – секунды

предполагая, что ваше $ datetime – это временная метка unix, вы можете получить $ ms from (time() - $timestamp)

если вы хотите, чтобы полный нечеткий создатель метки времени видел: http://plugins.trac.wordpress.org/browser/splees-fuzzy-datetime/trunk/splees_fuzzy_datetime.php

Я нашел Zend_Date намного проще в использовании с меткой времени. Затем отформатируйте вывод, если хотите (возможно, с помощью справки просмотра).

(это было бы замечанием, если бы я мог)