侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

php实现倒计时效果

php  /  管理员 发布于 7年前   149

现在很多的团购网站上都有剩余时间的显示。显示剩余时间可以使用Javascript来实现,但是我们会发现使用Javascript来实现的话不安全,因为Javascript获取的是客户端的时间。比方说,这次团购已经结束了,但是懂技术的访客只要修改他客户端电脑的时间就又显示该商品还可以购买。很明显,这不是我们网站设计的初衷。团购结束了就不可以再购买啦。这里写了一个考试系统剩余时间倒计时的显示代码和大家一起探讨。

实现原理:
PHP获取的是服务器端的时间,我们只要设置考试的开始时间和结束时间及当前时间。如果当前的时间不在我们的考试时间范围内,则显示给考生“当前不在考试时间段!”。如果在考试时间范围内,则获取当前时间,结束时间减掉当前时间就是剩余的时间,将剩余时间格式化输出就是“剩余考试时间:2小时56分32秒”这样的形式。服务器端获得了剩余时间后,我们还要在客户端动态的显示剩余时间的倒计时。这就需要用AJAX来实现了。在开始前大家先熟悉几个函数吧!

PHP函数:
strtotime(); //将任何英文日期转换为时间戳
floor(); //舍去法取整,和int()强制转换相识
json_encode() //对变量进行JSON编码,返回字符串

简单的剩余天数计算:

date_default_timezone_set('Asia/Hong_Kong');$startDate = '2015-8-11';$endDate = '2015-8-31';// 将日期转换为Unix时间戳$startDateStr = strtotime($startDate);$endtDateStr = strtotime($endDate);$total = $endtDateStr-$startDateStr;$now = strtotime(date('Y-m-d'));$remain = $endtDateStr-$now;echo '为期:'.$total/(3600*24).'天
';echo '剩余:'.$remain/(3600*24).'天';

效果:

简单的剩余时间计算:

date_default_timezone_set('Asia/Hong_Kong');$startTime = '09:00:00';$endTime = '18:00:00';// 将时间转化为unix时间戳$startTimeStr = strtotime($startTime);$endTimeStr = strtotime($endTime);$total = $endTimeStr - $startTimeStr;$restHours = 1; // 休息1小时$now = strtotime(date('H:i:s'));$remain = $endTimeStr - $now;echo '上班时间:'.($total/3600-$restHours).'小时
';echo '还有:'.floor(($remain/3600)).'小时'.floor($remain/60).'分钟下班';

效果:

前后端配合实现考试剩余时间:

HTML布局

考试剩余时间:

复制代码 代码如下:
00小时00分00秒

JS脚本

function dealData(id,value){  var place = document.getElementById(id);  place.innerHTML = value;}window.setInterval(function(){ // 每秒从服务器取一次数据  var ajax = new Ajax();  ajax.get("remain_time.php?a="+Math.random(),function(data){  eval("var dtime = "+data);   dealData('hour',dtime.hour);  dealData('minute',dtime.minute);  dealData('second',dtime.second); });},1000);

PHP代码:

date_default_timezone_set('PRC');$start_time = '09:00:00';$end_time = '18:00:00';$start_famate_time = strtotime($start_time);//开始时间转化为时间戳$end_famate_time = strtotime($end_time); //结束时间转化为时间戳$now_time = time();if($end_famate_time < $now_time || $start_time > $now_time){ echo '当前不在考试的时间范围内!'; exit;}$remain_time = $end_famate_time-$now_time; //剩余的秒数$remain_hour = floor($remain_time/(60*60)); //剩余的小时$remain_minute = floor(($remain_time - $remain_hour*60*60)/60); //剩余的分钟数$remain_second = ($remain_time - $remain_hour*60*60 - $remain_minute*60); //剩余的秒数echo json_encode(array('hour'=>$remain_hour,'minute'=>$remain_minute,'second'=>$remain_second));

以上就是php实现倒计时的关键代码,希望对大家的学习有所帮助。

您可能感兴趣的文章:

  • PHP+JS实现的商品秒杀倒计时用法示例
  • php倒计时出现-0情况的解决方法
  • php+js实现倒计时功能
  • PHP 类商品秒杀计时实现代码
  • php结合redis实现高并发下的抢购、秒杀功能的实例
  • php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
  • php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
  • 浅析php如何实现App常用的秒发功能
  • PHP获取指定时间段之间的 年,月,天,时,分,秒
  • 时间戳与时间相互转换(php .net精确到毫秒)
  • PHP获取毫秒级时间戳的方法
  • php获取当前时间的毫秒数的方法
  • php实时倒计时功能实现方法详解


  • 上一条:
    php实现面包屑导航例子分享
    下一条:
    WordPress中用于更新伪静态规则的PHP代码实例讲解
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客