2011-08-09 32 views
2
time()

返回由於time()函數

Unix紀元中的秒數測量的當前時間(1970年1月1日00:00:00 GMT)。

我的問題是:

  1. 是否涉及到服務器的時間?位於英國的服務器輸出的time();與位於美國的服務器不同?或者unix時間是根據GMT計算的?
  2. 我在計算當地時間,我有gmt抵消。我是否需要從unix時間添加GMT偏移量以查找當前的本地時間。

回答

2
  1. Unix時代是一個固定的時刻,而不是當地時間,因此無論你身在何處,它們都是相同的秒數。服務器時間只有當服務器的時鐘是錯誤的:)

  2. 你不應該在乎GMT偏移,如果你用它來顯示日期的功能是時區瞭解並正確配置影響:

    <?php 
    
    $now = time(); 
    
    date_default_timezone_set('Europe/Madrid'); 
    echo date('Y-m-d H:i:s O e', $now) . PHP_EOL; 
    
    date_default_timezone_set('America/Hermosillo'); 
    echo date('Y-m-d H:i:s O e', $now) . PHP_EOL; 
    

    ...打印:

    2011-08-09 13:33:58 +0200 Europe/Madrid 
    2011-08-09 04:33:58 -0700 America/Hermosillo 
    
1

截至the manual開始和你的問題概括,回來的時候是因爲Unix EpochGMT秒。

這不是您當地的時間,您需要修改時區設置或修改從time()返回的值爲當地時間。