PHP 类商品秒杀计时实现代码


Posted in PHP onMay 05, 2010

要求要有小时分钟秒的实时倒计时的显示,用户端修改日期时间不会影响到倒计时的正常显示(也就是以服务器时间为准)。

其实这和很多的考试等系统的时间限制功能同样的要求。

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

现在问题是解决用户端修改日期时间对我们的显示的影响。

解决的办法是计算出用户端的时间和服务器的时间差,这样问题的完成解决了。

这样只需要运行一次php,实时倒计时的时间就和服务器的时间同步了。

理论是同步的,但实际测试会有1秒的误差。(具体原因就是和网速有关,网速越快,误差就越小),但这决不会影响到我们上面的要求了。

注:秒杀时间从早上点到晚上10点。

Code 如下:

<?php //php的时间是以秒算。js的时间以毫秒算 
date_default_timezone_set('PRC'); 
//date_default_timezone_set("Asia/Hong_Kong");//地区 
//配置每天的活动时间段 
$starttimestr = "08:00:00"; 
$endtimestr = "22:00:00"; 
$starttime = strtotime($starttimestr); 
$endtime = strtotime($endtimestr); 
$nowtime = time(); 
if ($nowtime<$starttime){ 
die("活动还没开始,活动时间是:{$starttimestr}至{$endtimestr}"); 
} 
$lefttime = $endtime-$nowtime; //实际剩下的时间(秒) 
?> 
<script language="JavaScript"> 
<!-- // 
var runtimes = 0; 
function GetRTime(){ 
var nMS = <?=$lefttime?>*1000-runtimes*1000; 
var nH=Math.floor(nMS/(1000*60*60))%24; 
var nM=Math.floor(nMS/(1000*60)) % 60; 
var nS=Math.floor(nMS/1000) % 60; 
document.getElementById("RemainH").innerHTML=nH; 
document.getElementById("RemainM").innerHTML=nM; 
document.getElementById("RemainS").innerHTML=nS; 
if(nMS>5*59*1000&&nMS<=5*60*1000) 
{ 
alert("还有最后五分钟!"); 
} 
runtimes++; 
setTimeout("GetRTime()",1000); 
} 
window.onload=GetRTime; 
// --> 
</script> 
<h4><strong id="RemainH">XX</strong>:<strong id="RemainM">XX</strong>:<strong id="RemainS">XX</strong></h4>
PHP 相关文章推荐
PHP 采集心得技巧
May 15 PHP
PHP缓存技术的多种方法小结
Aug 14 PHP
php简单开启gzip压缩方法(zlib.output_compression)
Apr 13 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
使用PHP获取汉字的拼音(全部与首字母)
Jun 27 PHP
Linux下PHP加速器APC的安装与配置笔记
Oct 24 PHP
php单一接口的实现方法
Jun 20 PHP
PHP实现简单汉字验证码
Jul 28 PHP
PHP数据库连接mysql与mysqli对比分析
Jan 04 PHP
PHP自带方法验证邮箱是否存在
Feb 01 PHP
php 自定义错误日志实例详解
Nov 12 PHP
php防止表单重复提交实例讲解
Feb 11 PHP
PHP 面向对象 final类与final方法
May 05 #PHP
PHP 面向对象 PHP5 中的常量
May 05 #PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 #PHP
一些被忽视的PHP函数(简单整理)
Apr 30 #PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 #PHP
mayfish 数据入库验证代码
Apr 30 #PHP
在PHP中操作Excel实例代码
Apr 29 #PHP
You might like
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
JS Timing
2007/04/21 Javascript
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
jQuery select表单提交省市区城市三级联动核心代码
2014/06/09 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
详解vue父子组件关于模态框状态的绑定方案
2019/06/05 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
关于vue 项目中浏览器跨域的配置问题
2020/11/10 Javascript
Python字符遍历的艺术
2008/09/06 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
python读取图片任意范围区域
2019/01/23 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
SQL数据库笔试题
2016/03/08 面试题
成教自我鉴定
2013/10/27 职场文书
年度考核表个人总结
2015/03/06 职场文书
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript