我正在計算數據庫中的日期和當前時間之間的差異。我在我的PHP代碼中使用了一個名爲TimeAgo()
的函數。當減去年份它返回不同的結果
TimeAgo()
代碼:
function TimeAgo ($oldTime, $newTime)
{
$timeCalc = strtotime($newTime) - strtotime($oldTime);
if ($timeCalc >= (60*60*24*30*12*2)){
$timeCalc = intval($timeCalc/60/60/24/30/12) . " years ago";
}else if ($timeCalc >= (60*60*24*30*12)){
$timeCalc = intval($timeCalc/60/60/24/30/12) . " year ago";
}else if ($timeCalc >= (60*60*24*30*2)){
$timeCalc = intval($timeCalc/60/60/24/30) . " months ago";
}else if ($timeCalc >= (60*60*24*30)){
$timeCalc = intval($timeCalc/60/60/24/30) . " month ago";
}else if ($timeCalc >= (60*60*24*2)){
$timeCalc = intval($timeCalc/60/60/24) . " days ago";
}else if ($timeCalc >= (60*60*24)){
$timeCalc = " Yesterday";
}else if ($timeCalc >= (60*60*2)){
$timeCalc = intval($timeCalc/60/60) . " hours ago";
}else if ($timeCalc >= (60*60)){
$timeCalc = intval($timeCalc/60/60) . " hour ago";
}else if ($timeCalc >= 60*2){
$timeCalc = intval($timeCalc/60) . " minutes ago";
}else if ($timeCalc >= 60){
$timeCalc = intval($timeCalc/60) . " minute ago";
}else if ($timeCalc > 0){
$timeCalc .= " seconds ago";
}else if ($timeCalc == 0){
$timeCalc = "Just now";
}
return $timeCalc;
}
一切正常,直到大約在數據庫中的值我一塌糊塗。如果我將日期設置爲1901-01-01 00:00:00
,則應將結果返回爲116 years ago
,但它會顯示爲。
我使用此代碼顯示輸出:
echo TimeAgo($db_user['far_date'], date("Y-m-d H:i:s"))
有一些簡單的我失蹤PHP計算日期時間是什麼時候?
時間戳的有效範圍通常是從週五,1901年12月13日20:45:54 UTC到2038年1月19日03:14:07 UTC。 (這些是與32位有符號整數的最小值和最大值對應的日期。) –
如果您需要更大範圍的日期,則使用64位PHP(它以64位時間戳值工作)或使用DateTime對象 –