php简单倒计时

时间:2012-02-20 00:24:59

标签: php countdown

我有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";

2 个答案:

答案 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语句,无论你想要什么时间间隔。