显示剩余时间再次投票

时间:2012-11-19 10:04:42

标签: php mysql date

我得到了一个投票脚本,允许人们每24小时投票一次数据库中的项目以及更多代码,以检查24小时是否已经过了'NOW()''DATE_SUB( NOW(),{{ 1}}。

我目前正在尝试添加该功能,以显示用户使用以下代码再次投票之前还剩多少时间。

'INTERVAL 1 DAY'

votcheck是一个来自sql字符串的数组,它只返回第一行为0或1。 如果用户已经投票,则为1;如果用户可以再次投票则为0。 第二行返回用户投票的日期和时间。 我似乎无法弄清楚如何在用户再次投票之前获得x小时数。

我的主要问题是$ time字符串的长度有时是13,有时是14个字符。

2 个答案:

答案 0 :(得分:2)

好的,这是

$voted = new DateTime($time);
$daylater = date('Y-m-d H:i:s', strtotime('+1 day', $voted->format('U')));
$canvote = new DateTime($daylater);
$now = new DateTime(date("Y-m-d H:i:s"));

$diff = $canvote->format('U') - $now->format('U'); 

if ( $diff > 0 && $diff < 86400 ) {
    $left = gmdate("H:i:s", $diff);
    echo $left . ' left till you can vote again';
} else {
    echo 'You can vote again' ;
}

让我知道它是否有效

答案 1 :(得分:0)

是否无法使用strtotime()直接转换$voteCheck[1]?然后,您可以根据当前时间戳检查unix时间戳。