我正在尝试创建一个视图助手,它将显示自......以来已经过去的分钟数,小时数或天数。我不太确定该怎么做。看起来日期比较工作,但我不知道如何获得数字。这是我到目前为止所做的:
<?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;
}
}
我想将“was”替换为实际的分钟/小时/天数。
答案 0 :(得分:1)
由于您已经在使用Zend Framework,TimeSince
view helper中有一个Zym Framework,它是一个额外的ZF扩展和帮助程序库。
TimeSince
助手基本上完全符合您的要求:
Last updated <?= $this->timeSince($timestamp); ?> ago
将输出如下内容:
Last updated 8 hours ago
答案 1 :(得分:0)
$ time = sprintf(“%d小时,%d分钟和%d秒\ n”,$ s /(1000 * 60 * 60),$ s /(1000 * 60),$ s);
其中$ s是秒
假设您的$ datetime是unix时间戳,您可以从(time() - $timestamp)
获得$ ms
如果你想要一个完整的模糊时间戳创建者,请参阅: http://plugins.trac.wordpress.org/browser/splees-fuzzy-datetime/trunk/splees_fuzzy_datetime.php
答案 2 :(得分:0)
我发现Zend_Date很容易使用时间戳。然后根据需要格式化输出(可能使用视图帮助来执行此操作)。
(如果可以,这本来就是评论)