在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等。在文章中,简单地举例介绍了PHP中如何计算两个日期相差 年、月、日。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?php /** +---------------------------------------------------------- * 功能:计算两个日期相差 年 月 日 +---------------------------------------------------------- * @param date $date1 起始日期 * @param date $date2 截止日期日期 +---------------------------------------------------------- * @return array +---------------------------------------------------------- */ function DiffDate( $date1 , $date2 ) { if ( strtotime ( $date1 ) > strtotime ( $date2 )) { $ymd = $date2 ; $date2 = $date1 ; $date1 = $ymd ; } list( $y1 , $m1 , $d1 ) = explode ( '-' , $date1 ); list( $y2 , $m2 , $d2 ) = explode ( '-' , $date2 ); $y = $m = $d = $_m = 0; $math = ( $y2 - $y1 ) * 12 + $m2 - $m1 ; $y = round ( $math / 12); $m = intval ( $math % 12); $d = ( mktime (0, 0, 0, $m2 , $d2 , $y2 ) - mktime (0, 0, 0, $m2 , $d1 , $y2 )) / 86400; if ( $d < 0) { $m -= 1; $d += date ( 'j' , mktime (0, 0, 0, $m2 , 0, $y2 )); } $m < 0 && $y -= 1; return array ( $y , $m , $d ); } ?> |