本文实例讲述了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程序设计有所帮助。