2
我想創建一個函數比較一個日期和當前時間,並返回一個很好格式化的字符串。
我已經寫了一些代碼在匆忙,它的工作原理,但我試圖找到一個更有效的方式來做到這一點。這裏是我的代碼:功能,格式化時差
function _formatDate($dateStr)
{
$timestr = "";
$t= time() - strtotime($dateStr);
if($t < 60) {
$timestr = "{$t} seconds ago";
}
elseif ($t <120) {
$timestr = "about a minute ago";
}
elseif ($t < 3600) {
$minute = floor($t/60);
$timestr = "{$minute} minutes ago";
}
elseif ($t < 7200) {
$timestr = " about an hour ago";
}
elseif ($t < 86400) {
$hour = floor($t/3600);
$timestr = "{$hour} hours ago";
}
elseif ($t < 172800) {
$timestr = "a day ago";
}
elseif ($t < 2592000) {
$day = floor($t/86400);
$timestr = "{$day} days ago";
}
elseif ($t < 5184000){
$timestr = "about a month ago";
}
else {
$month = floor($t/2592000);
$timestr = "{$month} months ago";
}
return $timestr;
}
我試圖通過日期作爲參數,並讓它自動返回格式化前:22分鐘前,或3天前 – Ibu 2011-03-17 19:07:18
那麼你的代碼有什麼問題?似乎做你在問什麼。如果這是一個網頁,輸出日期/時間戳,然後使用JS(和TimeAgo等庫)來更新值可能是有益的。 – Rudu 2011-03-17 19:12:17
我想知道是否有更有效的方法來做到這一點,沒有太多if else語句。 – Ibu 2011-03-17 19:16:57