日期比较是程序开发经常遇到的问题,本文介绍的是从 wordpress 摘录的日期比较函数,可以返回给定的两个时间之间的距离,并显示成易于读取的格式。
PHP:
1 <?php
2 // 说明:比较两个时间的差别并且显示为易于读取的格式
3 // 整理:http://www.CodeBit.cn
4
5 function human_time_diff( $from, $to = '' ) {
6 if ( empty($to) )
7 $to = time();
8 $diff = (int) abs($to - $from);
9 if ($diff <= 3600) {
10 $mins = round($diff / 60);
11 if ($mins <= 1)
12 $since = '1 min';
13 else
14 $since = sprintf( '%s mins', $mins);
15 } else if (($diff <= 86400) && ($diff > 3600)) {
16 $hours = round($diff / 3600);
17 if ($hours <= 1)
18 $since = '1 hour';
19 else
20 $since = sprintf( '%s hours', $hours );
21 } elseif ($diff >= 86400) {
22 $days = round($diff / 86400);
23 if ($days <= 1)
24 $since = '1 day';
25 else
26 $since = sprintf( '%s days', $days );
27 }
28 return $since;
29 }
30
31 echo human_time_diff( '1166454231', '1166592806' );
32
33 ?>
2 // 说明:比较两个时间的差别并且显示为易于读取的格式
3 // 整理:http://www.CodeBit.cn
4
5 function human_time_diff( $from, $to = '' ) {
6 if ( empty($to) )
7 $to = time();
8 $diff = (int) abs($to - $from);
9 if ($diff <= 3600) {
10 $mins = round($diff / 60);
11 if ($mins <= 1)
12 $since = '1 min';
13 else
14 $since = sprintf( '%s mins', $mins);
15 } else if (($diff <= 86400) && ($diff > 3600)) {
16 $hours = round($diff / 3600);
17 if ($hours <= 1)
18 $since = '1 hour';
19 else
20 $since = sprintf( '%s hours', $hours );
21 } elseif ($diff >= 86400) {
22 $days = round($diff / 86400);
23 if ($days <= 1)
24 $since = '1 day';
25 else
26 $since = sprintf( '%s days', $days );
27 }
28 return $since;
29 }
30
31 echo human_time_diff( '1166454231', '1166592806' );
32
33 ?>
参数2可选,默认是当前时间。
浙公网安备 33010602011771号