php实时倒计时的三种实现方法

   要求:  

     1、要有小时分钟秒的实时倒计时的显示。   

        2、用户端修改日期时间不会影响到倒计时的正常显示(也就是以服务器时间为准)。   其实这和很多考试等系统时间限制功能的要求一样。   

解决思路:   

       1、总不能用ajax每秒都获取服务器时间吧,所以实时倒计时一定要用javascript实现。这很简单,网上一大把的例子。   

       2、现在问题是解决用户端修改日期时间对我们的显示的影响。解决的办法是计算出用户端的时间和服务器的时间差,这样问题就完全解决了,只需要运行一次php,实时倒计时的时间就和服务器的时间同步了。理论是同步的,但实际测试会有1秒的误差(具体原因就是和网速有关,网速越快,误差就越小),但这决不会影响到我们上面的要求了。   

     代码1:  <?php //php的时间是以秒算,js的时间以毫秒算 date_default_timezone_set("Asia/Hong_Kong");//地区 //配置每天的活动时间段 $starttimestr = "09:00:00"; $endtimestr = "18:30:00"; $starttime = strtotime($starttimestr); $endtime = strtotime($endtimestr); $nowtime = time(); $lefttime = $endtime-$nowtime;//实际剩下的时间(秒) ?> 

     代码2,修改了代码1的一些bug: <?php //php的时间是以秒算,js的时间以毫秒算 date_default_timezone_set("Asia/Hong_Kong");//地区 //配置每天的活动时间段 $starttimestr = "09:00:00"; $endtimestr = "18:30:00"; $starttime = strtotime($starttimestr); $endtime = strtotime($endtimestr); $nowtime = time(); $lefttime = $endtime-$nowtime;//实际剩下的时间(秒) ?>  

     代码3,思路不同,简单多了:<?php //php的时间是以秒算,js的时间以毫秒算 date_default_timezone_set("Asia/Hong_Kong");//地区 //配置每天的活动时间段 $starttimestr = "09:00:00"; $endtimestr = "13:50:00"; $starttime = strtotime($starttimestr); $endtime = strtotime($endtimestr); $nowtime = time(); if ($nowtime<$starttime){  die("活动还没开始,活动时间是:{$starttimestr}至{$endtimestr}"); } $lefttime = $endtime-$nowtime;//实际剩下的时间(秒)

时间: 2024-09-08 11:41:19

php实时倒计时的三种实现方法的相关文章

Flash制作雪花视觉动画效果的三种制作方法

Flash制作雪花视觉动画效果的三种制作方法 第一种方法: 最笨但也效果最好,就是用"引导线"功能,让雪花不停的飘呀飘,如果多用几个图层,效果更好.1.新建一个Flash影片.设背景为"黑色",其他的用默认值.2.按Ctrl+F8新建一个组件,类型为"影片剪辑",命名为"雪花".在它的正中用"铅笔"工具画一个不规则的多边形,然后用"颜料桶工具"将它填上白色.(如图1-1所示) 3.再用C

Java解析网络数据流的三种特殊方法

Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦脑. 笔者也不例外,曾经为此而查阅了很多文档,经过反复测试才 得以解决,如今笔者已经在所从事的很多电子政务项目中顺利的应用.今天笔者写此文,介绍用Java解析网络数据的三种特殊方法,希望对正在寻求这方面问题答案的读者有所帮助. UTF8转换成GB2312 当我们在基于HTTP协议的JSP或Servlet的应用中获取数据或发送请求时,JVM会把输送的数据编码成UTF8格式.

ps怎么去水印? PS去水印的三种简单方法

  ps怎么去水印?  PS去水印的三种简单方法          方法1:用内容感知移动工具去水印 打开素材图片[ctrl+o],如下图所示. 复制图层[ctrl+j],如下图所示. 单击工具箱中的内容感知移动工具,选中图片中的水印,如下图所示. 往下移,水印不见了,如下图所示. 方法2:用污点修复画笔工具去水印 打开素材图片[ctrl+o],复制图层[ctrl+j],如下图所示.

win8系统网络总是受限的三种解决方法

win8系统网络总是受限的三种解决方法   方法一: 1.在电脑右下角右键点击无线网图标,在弹出菜单中选择打开网络和共享中心 2.进入网络共享中心,点击打开"连接"右侧的WLAN 3.进入WLAN状态页面,显示无Internet访问权限,点击打开页面下方的属性按钮 4.进入WLAN属性页面,点击打开配置按钮

桌面图标有蓝底的三种解决方法

  桌面图标有蓝底的三种解决方法.          方法一.在桌面右击,选择"排列图标",确保"在桌面上锁定web项目"没有勾选   方法二. 1.右击"我的电脑",选择属性 2.切换到"高级"选项卡,点击性能下的"设置"按钮,如下图所示 3.切换到"视觉效果"选项卡,下拉右边的滚动条,勾选"在桌面上为图标标签使用阴影",点击"确定"按钮保存退出

Win7系统桌面图标变小的三种设置方法

  Win7系统桌面图标变小的三种设置方法           具体设置方法如下: 第一种方法: 最简单的方法,您可以直接在桌面空白位置上单击右鼠标右键,然后从快捷菜单中选择"查看",然后从下级菜单中选择"小图标"即可,如下图所示: 第二种方法: 点击一下桌面,按住ctrl键,然后滚动滑鼠中键,通过放大或者缩小桌面来实现变小Win7桌面图标. 第三种方法:将电脑桌面分辨率调高 通常电脑分辨率越大,桌面就越细腻,图标也就越小,大家可以试试,具体步骤如下: 1.在Win

PHP删除HTMl标签的三种解决方法

本篇文章是对PHP删除HTMl标签的三种解决方法进行了详细的分析介绍,需要的朋友参考下   方法1:直接取出想要取出的标记 复制代码 代码如下: <?php //取出br标记 function strip($str) { $str=str_replace("<br>","",$str); //$str=htmlspecialchars($str); return strip_tags($str); } ?> 方法2.PHP 中有个 strip

javascript确认框的三种使用方法

 javascript确认框的三种使用方法,在开发中经常要用到,记录一下使用方法 第一种方法:挺好用的,确认以后才能打开下载地址页面.原理也比较清晰.主要用于删除单条信息确认.  代码如下: <SCRIPT LANGUAGE=javascript>  function del() {    var msg = "您真的确定要删除吗?nn请确认!";    if (confirm(msg)==true){      return true;    }else{      re

js中判断对象是否为空的三种实现方法

 本篇文章主要是对js中判断对象是否为空的三种实现方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助 在写js脚本的时候经常遇到对象为空或者不是对象的情况,出现这种情况我们可以用if去判断它,然后去执行相应的处理方法,具体判断他们的方法有以下几种:   1.if   (typeOf(x)   ==   "undefined")   2.if   (typeOf(x)   !=   "object")   3.if(!x)   其中第三种是最简单的