php倒计时出现-0情况的解决方法
本文实例讲述了php倒计时出现-0情况的解决方法。分享给大家供大家参考,具体如下:
问题:今天有反馈,说倒计时出现了-0天的情况,我看了看程序,卧槽,当时怎么没测试到
原因是PHP的逻辑判断中-0>0
分析:贴出错的代码
$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';
}
输出:
array 'start-now'=>int-33321 array 'float_day'=>float-0.385659722222 array 'int_day'=>float-0 array 'off'=>float-0 -0>0
过程:
当开始时间和当前时间是同一天时,上边的计算过程由于-0>0所以会出现off=-0的情况
改进:
$starttime=1362585600;//3.7凌晨
$nowtime=1362618921;//3.7早上
if(($starttime-$nowtime)<0){
$off=0;
}else{
$off=ceil(($starttime-$nowtime)/86400);
}
PS:本站还提供了一个Unix时间戳转换工具,非常实用,提供给大家参考:
Unix时间戳(timestamp)转换工具:
http://tools.jb51.net/code/unixtime
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数学运算技巧总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。