本文实例讲述了PHP倒计时出现-0情况的解决方法。分享给大家供大家参考,具体如下:
问题:
今天有反馈,说倒计时出现了-0天的情况,我看了看程序,卧槽,当时怎么没测试到原因是PHP的逻辑判断中 -0 > 0
分析:
贴出错的代码PHP;">
$starttime = 1362585600; //3.7凌晨
$nowtime = 1362618921;//3.7早上
$off = ceil(($starttime - $nowtime)/86400); //倒计时
if ($off < 0) {
$off = 0;
}
$b = $starttime - $nowtime;
$c = $b/86400;
$d = ceil($c);
var_dump(array('start-now'=>$b),array('float_day'=>$c),array('int_day'=>$d),array('off'=>$off));
if (-0 < 0) {
echo '-0 < 0';
} else {
echo '-0 > 0';
}
输出:
int -33321
array
'float_day' => float -0.385659722222
array
'int_day' => float -0
array
'off' => float -0
-0 > 0
过程:
当开始时间和当前时间是同一天时,上边的计算过程由于 -0 > 0 所以会出现 off = -0 的情况
改进:
PHP;">
$starttime = 1362585600; //3.7凌晨
$nowtime = 1362618921;//3.7早上
if (($starttime - $nowtime) < 0) {
$off = 0;
} else {
$off = ceil(($starttime - $nowtime)/86400);
}
PS:本站还提供了一个Unix时间戳转换工具,非常实用,提供给大家参考:
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。