getdate(int timestamp)函数和一个秒杀代码

来源:互联网 发布:usb转ttl怎么接单片机 编辑:程序博客网 时间:2024/06/05 07:35

今天做网站秒杀栏目时,用到一些PHP时间函数的知识点,觉得有必要记录下。

首先,PHP中所有函数都是UNIX纪元的,即从1970年1月1日开始的。日期是从这个时候开始的秒数。当一个函数调用从这时候计的秒数时,就把它当作(timestamp)时间戳。 

时间戳是指从1970年1月1日到现在的秒数。

第一用的函数是:

array getdate ( [int timestamp])

返回一个根据 timestamp 得出的包含有日期信息的结合数组。如果没有给出时间戳则认为是当前本地时间。数组中的单元如下:

格 1. 返回的关联数组中的键名单元

键名说明返回值例子"seconds"秒的数字表示0 到 59"minutes"分钟的数字表示0 到 59"hours"小时的数字表示0 到 23"mday"月份中第几天的数字表示1 到 31"wday"星期中第几天的数字表示0(表示星期天)到 6(表示星期六)"mon"月份的数字表示1 到 12"year"4 位数字表示的完整年份例如:1999 或 2003"yday"一年中第几天的数字表示0 到 366"weekday"星期几的完整文本表示Sunday 到 Saturday"month"月份的完整文本表示January> 到 December0自从 Unix 纪元开始至今的秒数,和 time() 的返回值以及用于date() 的值类似。系统相关,典型值为从 -2147483648 到2147483647

如:

<?php$date_array=getdate(time());print_r($date_array);?>

就会输出

seconds=>42
minutes=>12
hours=>14
mday=>20
wday=>3
mon=>6
year=>2012
yday=>171
weekday=>Wednesday
month=>June
0=>1340201562



第二个是:

int time(void)

返回自从 Unix 新纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数,简单说就是放回当前时间的时间戳。


还有一个是早PHP淮北@PHP10086博客网上看到的php+js写秒杀的例子,值得学习

<?php//php的时间是以秒算。js的时间以毫秒算date_default_timezone_set('PRC');//date_default_timezone_set("Asia/Hong_Kong");//地区//配置每天的活动时间段$starttimestr = "2011-3-29 8:10:00";$endtimestr = "2011-3-29 9:43:00";$starttime = strtotime($starttimestr);$endtime = strtotime($endtimestr);$nowtime = time();if ($nowtime<$starttime){die("活动还没开始,活动时间是:{$starttimestr}至{$endtimestr}");}if ($endtime>=$nowtime){$lefttime = $endtime-$nowtime; //实际剩下的时间(秒) }else{ $lefttime=0; die("活动已经结束!");}?><script language="JavaScript">var runtimes = 0;function GetRTime(){var nMS = <?php echo $lefttime; ?>*1000-runtimes*1000;if (nMS>=0){var nD=Math.floor(nMS/(1000*60*60*24))%24;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("RemainD").innerHTML=nD;document.getElementById("RemainH").innerHTML=nH;document.getElementById("RemainM").innerHTML=nM;document.getElementById("RemainS").innerHTML=nS;if(nMS==5*60*1000){alert("还有最后五分钟!");}runtimes++;setTimeout("GetRTime()",1000);}}window.onload=GetRTime;</script><h4>距离活动结束还有 <strong id="RemainD">XX</strong>天 <strong id="RemainH">XX</strong>小时 <strong id="RemainM">XX</strong>分钟 <strong id="RemainS">XX</strong>秒</h4>





原创粉丝点击