我一直试图让这段代码正常工作 - 基本上我想显示自那时起过去的时间,并通过从当前时间减去它来发布文章。我几乎得到了它,我发现下面的代码,除了分钟和秒钟之外一切正常。我可以弄清楚为什么它没有显示秒或分钟(如果适用)。只是为了清除每篇文章,显示适用的经过时间,如果<它应该显示多少秒,>然后应该显示分钟等
我的代码是
<?php
$today = time();
$post = $item->created;
$createdday= strtotime($post); //convert $post to unix timestamp
$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);
//year checker
if($difftext=="")
{
if($years>1)
$difftext=$years." years ago";
elseif($years==1)
$difftext=$years." year ago";
}
//month checker
if($difftext=="")
{
if($months>1)
$difftext=$months." months ago";
elseif($months==1)
$difftext=$months." month ago";
}
//month checker
if($difftext=="")
{
if($days>1)
$difftext=$days." days ago";
elseif($days==1)
$difftext=$days." day ago";
}
//hour checker
if($difftext=="")
{
if($hours>1)
$difftext=$hours." hours ago";
elseif($hours==1)
$difftext=$hours." hour ago";
}
//minutes checker
if($difftext=="")
{
if($minutes>1)
$difftext=$minutes." minutes ago";
elseif($minutes==1)
$difftext=$minutes." minute ago";
}
//seconds checker
if($difftext=="")
{
if($seconds>1)
$difftext=$seconds." seconds ago";
elseif($seconds==1)
$difftext=$seconds." second ago";
}
echo " <span class=timediff> | ".$difftext . "</span>"; ?>
我的例子是http://www.landnsand.co.za/dev/test/幻灯片下面的最新阅读模块。
任何建议或建议为什么秒和分钟可能无法正常工作将不胜感激!我已经搜索过高低,并尝试了很多选项,但必须遗漏一些东西。
谢谢,乔希
答案 0 :(得分:0)
echo time_elapsed_string('2013-05-01 00:22:35');
echo time_elapsed_string('2013-05-01 00:22:35', true);
4 months ago
4 months, 2 weeks, 3 days, 1 hour, 49 minutes, 15 seconds ago
<强> Link to the function. 强>
答案 1 :(得分:-1)
<?php
$dt = new DateTime();
$dt->setTimestamp(1389956508); // timestamp of creation (example)
$dt2 = new DateTime();
$dt2->setTimestamp(time()); // timestamp now
$interval = $dt->diff($dt2, true);
echo $interval->format('%i minutes ago');
?>
输出(例如):
2 minutes ago
这只是一个例子。因此,以这种方式使用它非常容易。