在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 );
}
?>
|