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


Posted in PHP onJuly 28, 2016

本文实例讲述了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.3water.com/code/unixtime

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php下防止单引号,双引号在接受页面转义的设置方法
Sep 25 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
Oct 04 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
Feb 02 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
PHP变量赋值、代入给JavaScript中的变量
Jun 29 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
Mar 05 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
24条货真价实的PHP代码优化技巧
Jul 28 #PHP
php求今天、昨天、明天时间戳的简单实现方法
Jul 28 #PHP
php字符串操作针对负值的判断分析
Jul 28 #PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 #PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
Jul 28 #PHP
apache php mysql开发环境安装教程
Jul 28 #PHP
Yii中的cookie的发送和读取
Jul 27 #PHP
You might like
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
jquery+thinkphp实现跨域抓取数据的方法
2016/10/15 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
两个多选select(multiple左右)添加、删除选项和取值实例
2014/05/12 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
原生javascript实现读写CSS样式的方法详解
2017/02/20 Javascript
详解Vue中添加过渡效果
2017/03/20 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
VUE+elementui组件在table-cell单元格中绘制微型echarts图
2020/04/20 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
python实现扫雷小游戏
2020/04/24 Python
深入理解css属性的选择对动画性能的影响
2016/04/20 HTML / CSS
生日宴会答谢词
2014/01/09 职场文书
创建精神文明单位实施方案
2014/03/08 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
道歉短信大全
2015/05/12 职场文书
实习指导老师意见
2015/06/04 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers