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音乐采集(部分代码)
Feb 14 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 PHP
php学习笔记之 函数声明(二)
Jun 09 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
Yii2 GridView实现列表页直接修改数据的方法
May 16 PHP
php中final关键字用法分析
Dec 07 PHP
phpinfo无法显示的原因及解决办法
Feb 15 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
PHP中->和=>的意思
Mar 31 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
apache+php+mysql安装配置方法小结
2010/08/01 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
浅谈php调用python文件
2019/03/29 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
java script编程起步(第三课)
2007/01/10 Javascript
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
2019/02/20 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
Python的形参和实参使用方式
2019/12/24 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
介绍一下Ruby的多线程处理
2013/02/01 面试题
农业大学毕业生的个人自我评价
2013/10/11 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
Python3 类型标注支持操作
2021/06/02 Python