php倒计时出现-0情况的解决方法

5年以前  |  阅读数:797 次  |  编程语言:PHP 

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

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例