Я пытаюсь создать помощник вида, который отобразит количество минут, часов или дней, прошедших с тех пор … прямо сейчас. Я не уверен, как это сделать. Похоже, что сравнение дат работает, но я не знаю, как получить номер. Вот что я до сих пор:
<?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 намного проще в использовании с меткой времени. Затем отформатируйте вывод, если хотите (возможно, с помощью справки просмотра).
(это было бы замечанием, если бы я мог)