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 相关文章推荐
推荐文章系统(一)
Oct 09 PHP
用PHP实现的随机广告显示代码
Jun 14 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
Jan 11 PHP
php引用传值实例详解学习
Nov 06 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
PHP实现事件机制实例分析
Jun 26 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 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
收音机的保养
2021/03/01 无线电
PHP自定义大小验证码的方法详解
2013/06/07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
动态为事件添加js代码示例
2009/02/15 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
详解Vue如何支持JSX语法
2017/11/10 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
利用Python中的mock库对Python代码进行模拟测试
2015/04/16 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
python打造爬虫代理池过程解析
2019/08/15 Python
利用 Flask 动态展示 Pyecharts 图表数据方法小结
2019/09/04 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
销售高级职员求职信
2013/10/29 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
民主生活会对照检查材料(统计局)
2014/09/21 职场文书
辞职信格式模板
2015/02/27 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技