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中的加密功能
Oct 09 PHP
PHP模拟SQL Server的两个日期处理函数
Oct 09 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 21 PHP
PHP Session变量不能传送到下一页的解决方法
Nov 27 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
Jun 21 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
php自动更新版权信息显示的方法
Jun 19 PHP
PHP Try-catch 语句使用技巧
Feb 28 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
Laravel timestamps 设置为unix时间戳的方法
Oct 11 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下删除字符串中HTML标签的函数
2008/08/27 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
Jquery实现简单的动画效果代码
2012/03/18 Javascript
jQuery学习笔记 操作jQuery对象 属性处理
2012/09/19 Javascript
js使用数组判断提交数据是否存在相同数据
2013/11/27 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
浅析Angular19 自定义表单控件
2018/01/31 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
python实现网页链接提取的方法分享
2014/02/25 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
python 中的int()函数怎么用
2017/10/17 Python
python实现五子棋小程序
2019/06/18 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
如何定义TensorFlow输入节点
2020/01/23 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
Django中template for如何使用方法
2021/01/31 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
实习单位推荐信范文
2013/11/27 职场文书
一年级数学教学反思
2014/02/01 职场文书
护理专科自荐书范文
2014/02/18 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫