Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)归海一刀
published in(发表于) 2014/2/17 7:43:02
动态网页制作技术PHP处理时间的实例_[PHP教程]

动态网页制作技术PHP处理时间的实例_[PHP教程]

/**
* 转换为UNIX时间戳
*/
function gettime(d) {
if(is_numeric(d))
return d;
else {
if(! is_string(d)) return 0;
if(ereg(":",d)) {
buf = split(" +",d);
year = split("[-/]",buf[0]);
hour = split(":",buf[1]);
if(eregi("pm",buf[2]))
hour[0] += 12;
return mktime(hour[0],hour[1],hour[2],year[1],year[2],year[0]);
}else {
year = split("[-/]",d);
return mktime(0,0,0,year[1],year[2],year[0]);
}
}
}


/**
*
* DateAdd(interval,number,date)
* 返回已添加指定时间间隔的日期。
* Inetrval为表示要添加的时间间隔字符串表达式,例如分或天
* number为表示要添加的时间间隔的个数的数值表达式
* Date表示日期
*
* Interval(时间间隔字符串表达式)可以是以下任意值:
* yyyy year年
* q Quarter季度
* m Month月
* y Day of year一年的数
* d Day天
* w Weekday一周的天数
* ww Week of year周
* h Hour小时
* n Minute分
* s Second秒
* w、y和d的作用是完全一样的,即在目前的日期上加一天,q加3个月,ww加7天。
*/
function DateAdd(interval, number, date) {
date = gettime(date);
date_time_array = getdate(date);
hours = date_time_array["hours"];
minutes = date_time_array["minutes"];
seconds = date_time_array["seconds"];
month = date_time_array["mon"];
day = date_time_array["mday"];
year = date_time_array["year"];
switch (interval) {
case "yyyy": year +=number; break;
case "q": month +=(number*3); break;
case "m": month +=number; break;
case "y":
case "d":
case "w": day+=number; break;
case "ww": day+=(number*7); break;
case "h": hours+=number; break;
case "n": minutes+=number; break;
case "s": seconds+=number; break;
}
timestamp = mktime(hours ,minutes, seconds,month ,day, year);
return timestamp;
}


/**
* DateDiff(interval,date1,date2)
* 返回两个日期之间的时间间隔
* intervals(时间间隔字符串表达式)可以是以下任意值:
* w 周
* d 天
* h 小时
* n 分钟
* s 秒
*/
function DateDiff (interval, date1,date2) {
// 得到两日期之间间隔的秒数
timedifference = gettime(date2) - gettime(date1);
switch (interval) {
case "w": retval = bcdiv(timedifference ,604800); break;
case "d": retval = bcdiv( timedifference,86400); break;
case "h": retval = bcdiv (timedifference,3600); break;
case "n": retval = bcdiv( timedifference,60); break;
case "s": retval = timedifference; break;
}
return retval;
}
?>
// 测试例
d1 = "2002-01-11";
d2 = date("Y-m-d",dateadd("d",15,d1));
echo d1."的". datediff("d",d1,d2)."天后是d2
";
echo d1."的10天前是".date("Y-m-d",dateadd("d",-10,d1))."
";
d3 = date("Y/m/d H:i:s");
echo "现在是".d3."距离2002/2/12 12:59:59还有".datediff("s",d3,"2002/2/12 12:59:59")."秒
";
?>







If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759