2012-11-04 30 views
3

我有php時間的巨大問題。php時間2小時錯誤只有50%的一些用戶

出於某種原因,它顯示了一些用戶的不同時間(2小時)和其他用戶的正確時間。

代碼是H:i:s dMy T當我在瀏覽器中從我的PC查看頁面時它告訴我它上午11點,當它實際上是上午9點,當我通過瀏覽器使用一個RDP檢查時,我得到正確的時間。

兩個電腦在該國(英國)在PC的具有相同的系統時間等

嘗試設置時區默認,但無論我做什麼,服務器仍然顯示了一些用戶在正確的時間,和其他用戶時間2小時前,有什麼想法?

代碼echo gmdate("H:i:s d-M-y T");

<?php echo gmdate("H:i:s d-M-y T"); ?> 
+0

PHP是服務器端編程,所以任何時間顯示它應該是相同的。 – 2012-11-04 09:55:49

+4

向我們展示代碼! – Eric

+0

a)需要的代碼;)b)@ChristianNikkanen如果用戶有能力選擇自己的時區,信息可能會保存在數據庫中,然後在向每個用戶提供內容時加載。我的猜測是這是因爲時區代碼映射的UI不正確而發生的。這讓我回到我的觀點(a)我們需要代碼! – javatarz

回答

0

作爲變通,讓我解釋這一點:還有誰得到正確的時間的用戶,別人得到-2H。如果我們將最後一次記錄在文件中,並且下次用戶打開頁面時,我們檢查$ now是否小於$ last_time,如果是,我們將添加2小時!讓我用數字解釋這一點,用戶1訪問該頁面,並返回正確的小時,​​比如說11AM。用戶2打開頁面,並返回上午9點,顯然我們不能在這個時間返回,所以我們增加2小時!

下面的代碼:

<?php 
$last_time = file_get_contents("file.txt"); // a file where the last time has been saved 
$now = strtotime(gmdate("H:i:s d-M-y T")); // Now ! 
if($now < $last_time){ 
    $now += 7200; // add 2 hours ! 
} 
file_put_contents("file.txt", $now); 
echo gmdate("H:i:s d-M-y T", $now); 
?> 

希望這是有幫助的!