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

今天做网站秒杀栏目时,用到一些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> 到 December
0自从 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.οnlοad=GetRTime;
</script>

<h4>距离活动结束还有 <strong id="RemainD">XX</strong>天 <strong id="RemainH">XX</strong>小时 <strong id="RemainM">XX</strong>分钟 <strong id="RemainS">XX</strong>秒</h4>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值