背景通過時區
我做一些更新,以PHP應用程序,這是非常古老計算PHP當前時間。在應用程序中出現錯誤,因爲使用了折舊函數mktime()
。我使用time()
代替整個應用程序更新了此功能。一旦我這樣做,我注意到,當顯示一個用戶的本地時間是由他們的郵政編碼計算出來的時候,它比當地實際時間晚了一個小時。
我已經將時間計算追蹤到下面的函數。時間被傳遞到的值,$client["localtime"]
示例代碼
if (isset($time) && $time) {
$utc_str = gmdate("M d Y H:i:s", time());
$utc = strtotime($utc_str);
if (isset($tznames[ $time["timezone"] ])) {
$client["timezone"] = $tznames[ $time["timezone"] ];
} else {
$client["timezone"] = "Unknown";
}
if ($time["daylightsavings"] == "Y" && date("I")) {
$time["timezone"]--;
}
$client["localtime"] = date("g:ia", $utc - ($time["timezone"] * 3600));
} else {
$client["localtime"] = "Unknown";
$client["timezone"] = "Unknown";
}
問題
爲什麼這個顯示1小時,什麼必須爲客戶的時區的本地時間落後我需要修復它?
「時區」是什麼意思?看起來像「時區」實際上是一個數字* UTC抵消*? – deceze