本文实例讲述了php将日期格式转换成xx天前格式的方法。分享给大家供大家参考。具体如下:
这段代码可以把时间格式化成3天前,5秒前,2年前的形式
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
|
// convert a date into a string that tells how long ago
// that date was.... eg: 2 days ago, 3 minutes ago.
function ago( $d ) {
$c = getdate ();
$p = array ( 'year' , 'mon' , 'mday' , 'hours' , 'minutes' , 'seconds' );
$display = array ( 'year' , 'month' , 'day' , 'hour' , 'minute' , 'second' );
$factor = array (0, 12, 30, 24, 60, 60);
$d = datetoarr( $d );
for ( $w = 0; $w < 6; $w ++) {
if ( $w > 0) {
$c [ $p [ $w ]] += $c [ $p [ $w -1]] * $factor [ $w ];
$d [ $p [ $w ]] += $d [ $p [ $w -1]] * $factor [ $w ];
}
if ( $c [ $p [ $w ]] - $d [ $p [ $w ]] > 1) {
return ( $c [ $p [ $w ]] - $d [ $p [ $w ]]). ' ' . $display [ $w ]. 's ago' ;
}
}
return '' ;
}
// you can replace this if need be.
// This converts my dates returned from a mysql date string
// into an array object similar to that returned by getdate().
function datetoarr( $d ) {
preg_match( "/([0-9]{4})(\\-)([0-9]{2})(\\-)([0-9]{2})([0-9]{2})(\\:)([0-9]{2})(\\:)([0-9]{2})/" , $d , $matches );
return array (
'seconds' => $matches [10],
'minutes' => $matches [8],
'hours' => $matches [6],
'mday' => $matches [5],
'mon' => $matches [3],
'year' => $matches [1],
);
}
|
希望本文所述对大家的php程序设计有所帮助。