php时间处理函数两则

 
计算两个时间差
Function DateDiff ($interval, $date1,$date2) {

// 得到两日期之间间隔的秒数

$timedifference = strtotime($date2) - strtotime($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;
}



**为PHP添加DateAdd函数 

正如在文章一开始我所说的-写本文的原因是因为我在PHP中找不到类似ASP的DateDiff函数。在介绍完PHP是如何处理日期和时间,让我们将ASP中常用的两个函数移植到PHP。第一个函数是DateAdd。 
根据Vbscript的文档,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_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;} 

?>;

 
我们可以将上面的代码保存为dateadd.inc文件,然后运行以下代码: 

<? 

include('dateadd.inc'); 

$temptime = time(); 

echo strftime( "%Hh%M %A %d %b",$temptime); 

$temptime = DateAdd("n" ,50,$temptime); 

echo "p"; 

echo strftime( "%Hh%M %A %d %b",$temptime); 

?>;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值