将unix时间戳输出为类似于 20秒前,1天前,3个月前这样的格式
<?php function user_friendly_date($timestamp, $echo = false, $dateFormat = 'm/d/Y H:i:s') { $ufdate = ''; $now = time(); $elapsed = $now - $timestamp; if($elapsed <= 0) $ufdate = 'Now'; else if($elapsed == 1) $ufdate = "1 Second ago"; else if($elapsed < 60) $ufdate = "{$elapsed} Seconds ago"; else if($elapsed < 3600) //One hour in seconds { $mins = floor($elapsed/60); $secs = $elapsed%60; $disp = min(($secs <= 30 ? $mins : $mins + 1), 59); $ufdate = "{$disp} Minute" . ($disp == 1 ? '' : 's') ." ago"; } else if($elapsed < 86400) //One day in seconds { $hours = floor($elapsed/3600); $mins = floor(($elapsed%3600)/60); $disp = min(($mins <= 30 ? $hours : $hours + 1), 23); $ufdate = "{$disp} Hour" . ($disp == 1 ? '' : 's') ." ago"; } else if($elapsed < 604800) //One week in seconds { $days = floor($elapsed/86400); $hours = floor(($elapsed%86400)/3600); $disp = min(($hours <= 12 ? $days : $days + 1), 6); $ufdate = "{$disp} Day" . ($disp == 1 ? '' : 's') ." ago"; } else $ufdate = date($dateFormat, $timestamp); if($echo) echo $ufdate; return $ufdate; } //Usage $now = time(); $tenSecsAgo = $now - 10; $oneMinuteAgo = $now - 60; $thirtyNineMinsAgo = $now - (39 * 60); //minutes * seconds $elevenHoursAgo = $now - (11 * 60 * 60); //hours * minutes * seconds $twoDaysAgo = $now - (2 * 24 * 60 * 60); //days * hours * minutes * seconds echo "<p>\n"; echo user_friendly_date($tenSecsAgo), " <br>\n"; echo user_friendly_date($oneMinuteAgo), " <br>\n"; echo user_friendly_date($thirtyNineMinsAgo), " <br>\n"; echo user_friendly_date($elevenHoursAgo), " <br>\n"; echo user_friendly_date($twoDaysAgo), " <br>\n"; echo "</p>"; ?>