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 正则表达式小结
Aug 31 PHP
php中$this-&amp;gt;含义分析
Nov 29 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
php判断变量类型常用方法
Apr 24 PHP
php将mysql数据库整库导出生成sql文件的具体实现
Jan 08 PHP
php获取文件大小的方法
Feb 26 PHP
PHP使用静态方法的几个注意事项
Sep 16 PHP
php中JSON的使用与转换
Jan 14 PHP
php绘制一条弧线的方法
Jan 24 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 PHP
laravel 解决强制跳转 https的问题
Oct 22 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
PHPThumb图片处理实例
2014/05/03 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
网页javascript精华代码集
2007/01/24 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
Reactjs实现通用分页组件的实例代码
2017/01/19 Javascript
Vue.js基础指令实例讲解(各种数据绑定、表单渲染大总结)
2017/07/03 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
实例解析Python中的__new__特殊方法
2016/06/02 Python
python logging模块的使用总结
2019/07/09 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
巴西最大的在线约会网站:ParPerfeito
2018/07/11 全球购物
教师实习的自我鉴定
2013/10/26 职场文书
岗位职责的含义
2013/11/17 职场文书
大学军训感言
2014/01/10 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
亮剑精神观后感
2015/06/05 职场文书
培训计划通知
2015/07/15 职场文书
美容院员工规章制度
2015/08/05 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
Python基本的内置数据类型及使用方法
2022/04/13 Python
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript