PHP中⽐较两个时间的⼤⼩与⽇期的差值
在这⾥我们全⽤到时间戳
mktime(hour,minute,second,month,day,year,[is_dst])
其参数可以从右向左省略,任何省略的参数都会被设置成本地⽇期和时间的当前值。
参数描述
hour 可选。规定⼩时。
minute 可选。规定分钟。
second 可选。规定秒。
month 可选。规定⽤数字表⽰的⽉。
day 可选。规定天。
year 可选。规定年。在某些系统上,合法值介于 1901 – 2038 之间。不过在 php教程 5 中已经不存在这个限制了。
is_dst 可选。如果时间在⽇光节约时间(dst)期间,则设置为1,否则设置为0,若未知,则设置为-1。⾃ 5.1.0 起,is_dst 参数被废弃。因此应该使⽤新的时区处理特性
在⽇常⽣活中我们要经常⽐较时间的早晚,对于我们来说判断时间的⼤⼩很简单。但是时间的⽐较不只是单纯的数字⼤⼩的⽐较,因此相对来说还是⽐较复杂。那么在php中通过什么⽅式来⽐较两个时间的⼤⼩呢?
要⽐较两个时间的⼤⼩,我们需要将时间转化为时间戳格式,然后再进⾏⽐较这是最常⽤的⽅法。常⽤到的函数是:strtotime()语法格式:strtotime(time,now)
如果time是绝对时间,则now参数不起作⽤
如果time是相对时间,则相对应的参数则对应函数就是now来提供,如果没有提供now参数,那么相对应的时间就是当前的本地时间。
实例:⽐较两个绝对时间的⼤⼩
代码:
<?php
$zero1=date(“y-m-d h:i:s”);
$zero2=”2010-11-29 21:07:00′;
echo “zero1的时间为:”.$zero1.”<br>”;
echo “zero2的时间为:”.$zero2.”<br>”;
if(strtotime($zero1)<strtotime($zero2)){
echo “zero1早于zero2′;
}else{
echo “zero2早于zero1′;
}
?>
输出结果:
zero1的时间为:2010-11-30 21:12:55
zero2的时间为:2010-11-29 21:07:00
zero2早于zero1
注:可以根据实例发散思维
计算两个⽇期的差值
奥运会倒计时,亚运会倒计时,⽣⽇倒计时这些倒计时都可以通过计算两个⽇期的差值来实现,同样需要⽤到strottime()函数。
实现倒计时需要将两个时间的差值整数化,需要⽤到函数ceil()
ceil()函数的作⽤是求不⼩于给定实数的最⼩整数
实例:倒计时⼩程序
实例代码:
<?php
$zero1=strtotime (date(“y-m-d h:i:s”)); //当前时间
$zero2=strtotime (“2011-2-03 24:00:00′);  //过年时间
$guonian=ceil(($zero2-$zero1)/86400); //60s*60min*24h
echo “离过年还有<strong>$guonian</strong>天!”;
?>
输出结果:
离过年还有66天!
strtotime()函数解析
定义和⽤法
strtotime() 函数将任何英⽂⽂本的⽇期时间描述解析为 unix 时间戳。
语法
strtotime(time,now)参数描述
time 规定要解析的时间字符串。
now ⽤来计算返回值的时间戳。如果省略该参数,则使⽤当前时间。
unix时间戳转换日期格式说明
该函数预期接受⼀个包含美国英语⽇期格式的字符串并尝试将其解析为 unix 时间戳(⾃ january 1 1970 00:00:00 gmt 起的秒数),其值相对于 now 参数给出的时间,如果没有提供此参数,则⽤系统当前时间

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。