可能重複:
PHP: producing relative date/time from timestampsPHP我如何計算相對時間?
給出一個具體的日期時間值,如何顯示相對時間像
- 36分鐘前
- 3小時前
- 3天前
- 1個月前
etc等等?
mysql_query("UPDATE users SET lastlogin = ".time()." WHERE id = ".$userID);
可能重複:
PHP: producing relative date/time from timestampsPHP我如何計算相對時間?
給出一個具體的日期時間值,如何顯示相對時間像
etc等等?
mysql_query("UPDATE users SET lastlogin = ".time()." WHERE id = ".$userID);
strtotime
是一個不錯的功能
讓我更具體
strtotime(-5 days);
或
strtotime(-1 month);
有一個可選的第二個參數是時間另一個時間戳你想開始,給你的relative
時間。爲什麼downvote?
<?php
function relativeTime($time = false, $limit = 86400, $format = 'g:i A M jS') {
if (empty($time) || (!is_string($time) && !is_numeric($time))) $time = time();
elseif (is_string($time)) $time = strtotime($time);
$now = time();
$relative = '';
if ($time === $now) $relative = 'now';
elseif ($time > $now) $relative = 'in the future';
else {
$diff = $now - $time;
if ($diff >= $limit) $relative = date($format, $time);
elseif ($diff < 60) {
$relative = 'less than one minute ago';
} elseif (($minutes = ceil($diff/60)) < 60) {
$relative = $minutes.' minute'.(((int)$minutes === 1) ? '' : 's').' ago';
} else {
$hours = ceil($diff/3600);
$relative = 'about '.$hours.' hour'.(((int)$hours === 1) ? '' : 's').' ago';
}
}
return $relative;
}
?>
我可以看到這個打印的例子嗎? – 2012-03-08 15:16:18
它會打印出「現在」,「不到一分鐘前」,「約4秒前」或「約41小時前」等內容。雖然沒有幾年或幾個月,但這是一個很好的起點。 – 2012-03-08 15:18:02
謝謝,我將能夠解決其餘幾個月和幾年。這是什麼時候進來的? '在將來' – 2012-03-08 15:20:29
這可能會幫助你
function time_ago_en($time)
{
if(!is_numeric($time))
$time = strtotime($time);
$periods = array("second", "minute", "hour", "day", "week", "month", "year", "age");
$lengths = array("60","60","24","7","4.35","12","100");
$now = time();
$difference = $now - $time;
if ($difference <= 10 && $difference >= 0)
return $tense = 'just now';
elseif($difference > 0)
$tense = 'ago';
elseif($difference < 0)
$tense = 'later';
for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}
$difference = round($difference);
$period = $periods[$j] . ($difference >1 ? 's' :'');
return "{$difference} {$period} {$tense} ";
}
例
<?php
echp time_ago_en(time() - 300);
// 5 minutes ago
?>
它只是一個例子。感謝壽。 – 2012-03-08 15:10:23
@JackManey我不認爲你可以告訴別人他們的代碼很容易受到SQL注入的影響,當你不知道他們如何獲得變量。 – jprofitt 2012-03-08 15:12:45
感謝您的關注,但它只是一個例子,我將如何將它添加到DB – 2012-03-08 15:13:40