【发布时间】:2014-01-17 10:52:23
【问题描述】:
我一直试图让这段代码正常工作 - 基本上我想通过从当前时间减去文章发布后的时间来显示经过的时间。我几乎明白了,我在下面找到了这段代码,除了分钟和秒外,一切都很好。我可以弄清楚为什么它不显示秒或分钟(如果适用)。只是为了清除每篇文章显示适用的经过时间,所以如果 然后应该显示分钟等
我的代码是
<?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/幻灯片下方的最新阅读模块。
任何关于为什么秒和分钟可能不起作用的建议或建议将不胜感激!我搜索了高低,并尝试了很多选项,但一定缺少一些东西。
感谢
【问题讨论】:
-
所以你找到了下面的代码。你能解释一下还是你只是复制/粘贴它?
-
是的,我找到了。我可以解释是的,但似乎无法弄清楚为什么当经过的时间少于 60 秒和少于 60 分钟时秒和分钟选项不起作用。
-
你能输出变量
$post吗? -
是的,我可以 - 这是文章发布日期未格式化为 unix 字符串