echo "p";
$date_time_array = getdate($timestamp);
$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"];
// 用mktime()函数重新产生Unix时间戳值
// 增加19小时
$timestamp = mktime($hours + 19, $minutes,$seconds ,$month, $day,$year);
echo strftime( "%Hh%M %A %d %b",$timestamp);
echo "br~E after adding 19 hours";
?
运行后得到:
14h58 Saturday 03 Jun
09h58 Sunday 04 Jun
~E after adding 19 hours
减少时间也是同样的-你只需要减少相应变量的值即可 。
得到两个不同时间值的差同样也是非常简单 。你所需要做的只是将两个时间值转换为Unix的时间戳值,然后两者相减即可 。两者之差即为两个时间所相隔的秒数 。另外一些算法可以很快地将秒转为天、小时、分和秒 。
**为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);
?
我们将得到:
15h41 Saturday 03 Jun
16h31 Saturday 03 Jun
为PHP添加DateDiff函数
现在DateAdd已经完成,那么DateDiff呢?
根据文档,DateDiff(interval,date1,date2)函数的定义为“返回两个日期之间的时间间隔” 。
Intervals参数的用法与DateAdd函数中的相同 。出于避免过于复杂的考虑,我们决定忽略Vbscript中DateDiff函数中其它复杂的参数 , 即其两个可选的参数变量[firstdayofweek[, firstweekofyear]](它们用于决定星期中第一天是星期天还是星期一和一年中第一周的常数 。而且我们只允许intervals有以下五个值:"w"(周)、"d"(天)、"h"(小时)、"n"(分钟) 和"s"(秒) 。
推荐阅读
- word如何目录页码对齐,word怎么目录页码对齐
- oracle查数据慢的原因,oracle导入数据特别慢
- erp信息管理系统定制方案设计,erp系统定制开发
- c语言取子串函数流程图 c语言截取子串
- jquery输出标签名,jquery输出结果到页面
- 即时战斗古风游戏,即时战斗类单机游戏
- mysql表格怎么打标题 mysql怎么创建表格
- mongodb怎么进行主从切换,mongodb 主备切换
- o2o电商平台如何做,o2o电商平台如何做销售