我有3/3/2012 10:56:34
之类的日期,我想把它转换为倒计时(比如ebay)。
它不一定是动态的,就像
一样3h 2m
2d 4h
3m
等
它不必显示年份,只需几天,几小时,分钟,秒,以适用者为准。
所以,如果有一天的时间,它会显示几天和几小时,如果在一天之内,只需几小时,如果不到一小时,只需几分钟。
有一种简单的方法吗?
这就是我所拥有的,但不起作用(已修复)
$timediff = round(strtotime($rs[ends]) - strtotime($now));
while ($timediff > 86400) { $timediff = $timediff - 86400; $days++; }
while ($timediff > 3600) { $timediff = $timediff - 3600; $hours++; }
while ($timediff > 60) { $timediff = $timediff - 60; $mins++; }
$secs = $timediff;
echo $days . "d " . $hours . "h " .$mins . "m";
答案 0 :(得分:0)
使用strtotime将您的字符串转换为Unix时间戳,然后计算now和时间戳之间的差异,然后您将轻松设法提取日期,小时,分钟等...
我头顶的秒和分钟示例(适用于$ timediff< 1小时,在您的情况下):
$seconds = $timediff % 60; $minutes = floor($timediff / 60);
等等...
答案 1 :(得分:0)
如果需要,首先使用strtotime转换为unix时间戳。
只需计算您希望倒数的时间:
1day is 86400 seconds.
1hour is 3600 seconds
使用SQL获取时间戳,然后使用if和ifelse语句。
$currenttime=time();
if($currenttime-$somearray[0][time_stamp]<3600)
{
$seconds=$curenttime-$somearray;
echo"$seconds seconds ago";
}
elseif($currenttime-$somearray[0][time_stamp}<86400)
{
$seconds=$currenttime-$somearray;
$minutes=floor($seconds/60);
echo"$minutes minutes ago";
}
并继续使用elseif语句,无论你想要什么时间间隔。