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 相关文章推荐
15种PHP Encoder的比较
Apr 17 PHP
php $_ENV为空的原因分析
Jun 01 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
Oct 29 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
迁移PHP版本到PHP7
Feb 06 PHP
PHP的Yii框架使用中的一些错误解决方法与建议
Aug 21 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
PHP7 弃用功能
Mar 09 PHP
PHP 出现 http500 错误的解决方法
Mar 09 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
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
jQuery学习笔记之DOM对象和jQuery对象
2010/12/22 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
javascript常用函数(1)
2015/11/04 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
JQuery选中select组件被选中的值方法
2018/03/08 jQuery
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
在JavaScript中查找字符串中最长单词的三种方法(推荐)
2021/01/18 Javascript
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[36:05]完美世界DOTA2联赛循环赛 Forest vs DM 第一场 11.06
2020/11/06 DOTA
改进Django中的表单的简单方法
2015/07/17 Python
浅谈Python单向链表的实现
2015/12/24 Python
Python中django学习心得
2017/12/06 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
中外合拍动画首获奥斯卡提名,“上海出品”《飞奔去月球》能否拿下最终大奖?
2021/03/16 国漫
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
狗狗玩具、零食和咀嚼物的月度送货服务:Super Chewer
2018/08/22 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
会计主管岗位职责范文
2013/11/08 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
使用feign服务调用添加Header参数
2021/06/23 Java/Android