本文实例讲述了php倒计时出现-0情况的解决方法。分享给大家供大家参考,具体如下:
问题:今天有反馈,说倒计时出现了-0天的情况,我看了看程序,卧槽,当时怎么没测试到
原因是PHP的逻辑判断中 -0 > 0
分析:贴出错的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$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' ;
}
|
输出:
1
2
3
4
5
6
7
8
9
|
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 的情况
改进:
1
2
3
4
5
6
7
|
$starttime = 1362585600; //3.7凌晨
$nowtime = 1362618921; //3.7早上
if (( $starttime - $nowtime ) < 0) {
$off = 0;
} else {
$off = ceil (( $starttime - $nowtime )/86400);
}
|
希望本文所述对大家PHP程序设计有所帮助。