几乎所有从事程序开发的程序员都遇到时间处理问题,PHP开发也一样,幸运的是PHP提供了很多关于日期时间函数。只要经常使用这些函数,搭配使用,日期时间处理上就熟能生巧了。 今天要讲的这个例子,需求是这样的。得知某个日期时间, 如:2014-01-05 10:10:00
几乎所有从事程序开发的程序员都遇到时间处理问题,PHP开发也一样,幸运的是PHP提供了很多关于日期时间函数。只要经常使用这些函数,搭配使用,日期时间处理上就熟能生巧了。
今天要讲的这个例子,需求是这样的。得知某个日期时间,
如:2014-01-05 10:10:00
我要在这个日期时间的基础上加上5个月并返回处理后的日期
结果:2014-01-05 10:10:00 加5个月等于 2014-06-05 10:10:00
这个需求看似简单,但还是有点棘手,因为PHP没有直接提供yyyy-mm-dd hh:ii:ss 这样格式的日期时间进行加减,所以只能通过时间戳来实现。时间戳是程序换算的标准格式,精确到秒。PHP可以将多种日期格式转换为时间戳,又可以把时间戳转换回各种日期格式,结合这两个特点我们大致实现的步骤有三步,先把原来时间转换成时间戳,然后进行加减,最后转换回日期格式。
当然,这是实现原理,结合PHP函数date()与strtotime()两个函数来实现大致也是这个意思,请看实例代码
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php <🎜>
<🎜>
/** <🎜>
<🎜>
*
PHP里的日期加减方法 <🎜>
<🎜>
*
琼台老屋 <🎜>
<🎜>
*/ <🎜>
<🎜>
//
第一步,假设有一个时间 <🎜>
<🎜>
$a
= '2014-01-05
10:10:00' ; <🎜>
<🎜>
<🎜>
<🎜>
//
第二步,获得这个日期的时间戳 <🎜>
<🎜>
$a_time
= strtotime ( $a ); <🎜>
<🎜>
<🎜>
<🎜>
//
第三步,获得加五个月后的时间戳 <🎜>
<🎜>
$b_time
= strtotime ( '+5
Month' , $a_time ); <🎜>
<🎜>
<🎜>
<🎜>
//
第四部,把时间戳转换回日期格式 <🎜>
<🎜>
$b
= date ( 'Y-m-d
H:i:s' , $b_time ); <🎜>
<🎜>
echo
'这是加了五个月后的日期' . $b ; <🎜>
<🎜>
<🎜>
<🎜>
//
如果你觉得以上代码过长也可以一行搞定 <🎜>
<🎜>
$b
= date ( 'Y-m-d
H:i:s' , strtotime ( '+' . $time . '
Month' , strtotime ( $a ))); <🎜>
<🎜>
echo
'这是加了五个月后的日期' . $b ; <🎜>
<🎜>
?>
|