我得到了一个投票脚本,允许人们每24小时投票一次数据库中的项目以及更多代码,以检查24小时是否已经过了'NOW()'
和'DATE_SUB( NOW()
,{{ 1}}。
我目前正在尝试添加该功能,以显示用户使用以下代码再次投票之前还剩多少时间。
'INTERVAL 1 DAY'
votcheck是一个来自sql字符串的数组,它只返回第一行为0或1。 如果用户已经投票,则为1;如果用户可以再次投票则为0。 第二行返回用户投票的日期和时间。 我似乎无法弄清楚如何在用户再次投票之前获得x小时数。
我的主要问题是$ time字符串的长度有时是13,有时是14个字符。
答案 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时间戳。