我想計算髮布評論後的時間。我發現function這個,它運作良好PHP:從用戶端獲取時區偏移並計算「時間前」
但我只注意到顯示給用戶的時間是錯誤的,因爲他/她的時區。我做了一些研究和解決方案似乎是通過用戶的時區偏移到使用稱爲getTimezoneOffset
的JavaScript函數的PHP頁面。
問題是我無法設法使用這個Offset來創建一個時區並在上面鏈接的函數上使用它。隨着another code的幫助是什麼,我可以迄今收集:
function humanTiming ($time,$offset)
{
$isDST = 1; // Daylight Saving 1 - on, 0 - off
$timezoneName = timezone_name_from_abbr('', intval($offset, 10) * 36, $isDST);
$date = new DateTime($time, new DateTimeZone($timezoneName));
$time = strtotime($date);
$time = time() - $time; // to get the time since that moment
$tokens = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($tokens as $unit => $text) {
if ($time < $unit) continue;
$numberOfUnits = floor($time/$unit);
return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':'');
}
}
而且我們這樣調用該函數:
echo humanTiming ($row['date'],"-240");
注:-240
是我從運行javascript函數中獲得的價值,所以,這可能是我的時區偏移量。
第一個問題:它似乎值-240
是無效的,並且像-0500
類似的工作。
第二期:即使我嘗試用有效的偏移值,函數返回42 years
不知道這款42年內如何計算出來的,但它完全錯誤的。
我根據您的文章改變了代碼,現在該函數不返回任何東西。 – xperator
我覺得前一時間功能本身有問題,偏移和時間戳問題是固定的。非常感謝。從幾個小時前或者幾分鐘前,它似乎不計算任何事情。不知道爲什麼。數學問題:P – xperator
ok經過大量測試和試驗後,問題出現了偏移。它必須是一個正數。所以乘以'-1'。再次感謝 :) – xperator