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 相关文章推荐
header()函数使用说明
Nov 23 PHP
php 表单数据的获取代码
Mar 10 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
解析php中的escape函数
Jun 29 PHP
分享一个php 的异常处理程序
Jun 22 PHP
destoon实现调用自增数字从1开始的方法
Aug 21 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
Oct 01 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
PHP MySql增删改查的简单实例
Jun 21 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 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 常见郁闷问题答解
2006/11/25 PHP
PHP如何实现跨域
2016/05/30 PHP
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
angular十大常见问题
2017/03/07 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
如何在Node和浏览器控制台中打印彩色文字
2020/01/09 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
[05:00]第二届DOTA2亚洲邀请赛主赛事第三天比赛集锦.mp4
2017/04/04 DOTA
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
将Pytorch模型从CPU转换成GPU的实现方法
2019/08/19 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
python实现两个文件夹的同步
2019/08/29 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
python pillow库的基础使用教程
2021/01/13 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
澳大利亚婴儿、幼儿和儿童在线设计师商店:Smooch Baby
2019/02/16 全球购物
广告传媒专业应届生求职信
2014/03/01 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
五年级作文之成长
2019/09/16 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电