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

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 11:06   92   0

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

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

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

第一用的函数是:

array getdate ( [int timestamp])

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

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

键名说明返回值例子
"seconds"秒的数字表示059
"minutes"分钟的数字表示059
"hours"小时的数字表示023
"mday"月份中第几天的数字表示131
"wday"星期中第几天的数字表示0(表示星期天)到 6(表示星期六)
"mon"月份的数字表示112
"year"4 位数字表示的完整年份例如:19992003
"yday"一年中第几天的数字表示0366
"weekday"星期几的完整文本表示SundaySaturday
"month"月份的完整文本表示January>December
0自从 Unix 纪元开始至今的秒数,和 time() 的返回值以及用于date() 的值类似。系统相关,典型值为从 -21474836482147483647

如:

<?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>





分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP