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生成随机数或者字符串的代码
Sep 05 PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
php 文件上传系统手记
Oct 26 PHP
PHP中foreach循环中使用引用要注意的地方
Jan 02 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
php判断GIF图片是否为动画的方法
Sep 04 PHP
yii操作cookie实例简介
Jul 09 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
PHP PDOStatement::bindValue讲解
Jan 30 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 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里得到前天和昨天的日期的代码
2007/08/16 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
激活 ActiveX 控件
2006/10/09 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
vue实现添加与删除图书功能
2018/10/07 Javascript
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
python调用fortran模块
2016/04/08 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
PyQt5实现下载进度条效果
2018/04/19 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
Python实现i人事自动打卡的示例代码
2020/01/09 Python
Python for循环通过序列索引迭代过程解析
2020/02/07 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
屈臣氏马来西亚官网:Watsons马来西亚
2019/06/15 全球购物
教师专业理论水平的自我评价分享
2013/11/09 职场文书
加工操作管理制度
2014/01/19 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
校长寄语大全
2014/04/09 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
2015年党小组工作总结
2015/05/26 职场文书
心灵捕手观后感
2015/06/02 职场文书