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 相关文章推荐
main.php
Dec 09 PHP
PHP 函数学习简单小结
Jul 08 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
PHP Streams(流)详细介绍及使用
May 12 PHP
PHP版本如何选择?应该使用哪个版本?
May 13 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 26 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
用PHP读取RSS feed的代码
2008/08/01 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
php通过分类列表产生分类树数组的方法
2015/04/20 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
php时间函数用法分析
2016/05/28 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
jquery.cookie用法详细解析
2013/12/18 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
CSS3悬停效果案例应用
2012/11/21 HTML / CSS
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
JVM是一个编译程序还是解释程序
2012/09/11 面试题
机关党员2014全国两会学习心得体会
2014/03/10 职场文书
早读课迟到检讨书
2014/09/25 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
python基础之匿名函数详解
2021/04/21 Python