2011-12-27 20 views
6

我使用date("D, m/d/Y h:i:s A T")函數調用獲取當前日期時間,但返回的時間與我在linux bash命令中創建日期時得到的時間不同(本地時間位於CST和php日期函數返回時間UTC)。我嘗試使用$timezone = @system("date +%Z",$retval);獲取時區,試圖使用date_default_timezone_set()函數設置本地時區。但CST似乎不是有效的timezone_identifier。如何在PHP中獲取本地時區?

總之,我只需要獲得與本地日期時間相同的日期和時間。

+1

再次,請停止簽署您的帖子。 – 2011-12-27 20:34:22

+0

好的。我不知道這是禁止的。 – Steve 2011-12-27 22:41:17

回答

10

http://php.net/manual/en/timezones.php

使用一個時區,這樣,對於CST使用:

<?php 
date_default_timezone_set("America/Chicago"); 

如果你只有在時區縮寫,而不是時區ID,然後使用:

<?php 
date_default_timezone_set(timezone_name_from_abbr("CST")); 
+0

+1。請注意,用戶可能不是芝加哥*。雖然確實是CT,但最好使用您的特定區域設置。 – 2011-12-27 20:34:48

+0

問題是我需要編程完成,所以我無法每次都需要時複製確切有效的timezone_identifier。我唯一的價值是CST或UTC等等... – Steve 2011-12-27 22:14:51

+0

@StephaneKouakou我已經添加了示例代碼,當您只有時區縮寫 – 2011-12-27 23:00:29

0

我想我已經找到了更好的功能:timezone_name_from_abbr()

+0

如果事實證明這是正確答案,請將其標記爲正確。 – rvighne 2014-01-20 16:00:26