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 相关文章推荐
基于mysql的bbs设计(一)
Oct 09 PHP
关于时间计算的结总
Dec 06 PHP
php小偷相关截取函数备忘
Nov 28 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
简单的php+mysql聊天室实现方法(附源码)
Jan 05 PHP
twig模板常用语句实例小结
Feb 04 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
PHP生成短网址方法汇总
Jul 12 PHP
py文件转exe时包含paramiko模块出错解决方法
Aug 12 PHP
PHP面相对象中的重载与重写
Feb 13 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生成带logo二维码方法小结
2016/04/08 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
再论Javascript下字符串连接的性能
2011/03/05 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
Windows系统下Node.js的简单入门教程
2015/06/23 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
python网络编程之文件下载实例分析
2015/05/20 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
selenium3.0+python之环境搭建的方法步骤
2021/02/01 Python
40岁生日感言
2014/02/15 职场文书
家长会主持词
2014/03/26 职场文书
关于梦想的演讲稿
2014/05/05 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
死亡赔偿协议书
2015/01/28 职场文书
内乡县衙导游词
2015/02/05 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
Python字符串常规操作小结
2022/04/03 Python
python中redis包操作数据库的教程
2022/04/19 Python