2016-05-30 90 views
0

當我寫這行的本地代碼,輸出將是這樣的:爲什麼time()函數在不同的服務器上返回不同的值?

echo time(); // 1464605083 

當我寫的3v4l(在線PHP殼)輸出將是這樣的:

echo time(); // 1339412843 

正如您所見,這些輸出之間存在巨大差異。怎麼了?我該如何同步它們?


注:我使用XAMPP在我的地方。

+2

看一看[這裏](http://stackoverflow.com/questions/ 13978567/time-returns-different-timestamps-based-on-server)似乎與您目前的問題非常相似。 – Andrew

+0

@DainisAbols我這麼認爲,但我怎樣才能改變我的本地時區?這取決於我的操作系統*(Windows)*或PHP有它自己的時區? –

+0

'05/30/2016 @ 10:44 am(UTC)'vs'06/11/2012 @ 11:07 am(UTC)'看起來不像時區問題。你有沒有在兩臺機器上檢查系統日期? –

回答

1

那個時區將根據您所使用的服務器是有所不同。如果你想在你的所有服務器上使用相同的時區。使用

date_default_timezone_set('timezonename')

+0

謝謝.. +1 –

+0

歡迎。如果它是有用的。標記爲正確答案。歡呼聲 –

1

您正在測試的網絡服務器具有完全關閉的系統時間設置。

如果你看看測試腳本的日期(在標題欄旁邊),你會發現它已被保存在@ Mon Jun 11 2012 11:07:23。您的時間戳1339412843轉換爲06/11/2012 @ 11:07am (UTC)

因此,服務器時間是錯誤的。如果時間緊迫,請在其他地方測試腳本。

+0

我明白了,但是我怎樣才能爲我的PHP設置默認值?在哪個文件的配置? * php.ini中*? –

+0

好的,謝謝。 +1 –

1

使用時區,我希望它的工作...

<?php 
date_default_timezone_set('America/New_York'); 
echo $date= time() ; 
?> 
+0

謝謝.. upvote –

2

如果你得到了從代碼後面的時間不正確的時間,這可能是因爲你的服務器是在其他國家或設置爲不同的時區。

因此,如果您需要時間根據特定位置正確,您可以設置一個時區以供使用。

下面的示例將時區爲「美國/紐約」,然後輸出在指定格式的當前時間:

<?php 
date_default_timezone_set("America/New_York"); 
echo "The time is " . date("h:i:sa"); 
?> 
+1

謝謝.. +1 –

相關問題