2010-02-18 70 views
2

我試圖使用PHP將RFC時間戳轉換爲友好日期。這裏的例子:在PHP中將時區偏移轉換爲友好名稱

Wed, 17 Feb 2010 19:44:01 -0500 

我想這是打印爲:

Wed, 17 Feb 2010 19:44:01 EST 

使用date()+的strtotime()似乎並沒有這樣的伎倆,因爲它轉換爲服務器時區(在我的案例PST)。

是否有一種簡單的方法可以對所有GMT偏移量執行此操作?似乎必須有。

回答

0

使用date功能隨着strtotime例如是這樣的:

print date("format-here", strtotime("Wed, 17 Feb 2010 19:44:01 -0500")); 

注:的strtotime功能需要適當/接受的日期字符串。

如果你需要轉換爲本地時間,請參閱以下鏈接:

http://www.askdavetaylor.com/how_do_i_get_local_time_with_the_php_time_function.html

http://php.net/manual/en/function.localtime.php

+0

使用date()+ strtotime()似乎並沒有訣竅,因爲它將它轉換爲服務器的時區(在我的情況下是PST)。 – 2010-02-18 04:31:58

+0

@Silber:查看我的答案已更新。 – Sarfraz 2010-02-18 04:35:25

1

看到strototime()date()

echo date('D, j M Y G:i:s T', strtotime('Wed, 17 Feb 2010 19:44:01 -0500)); 
//Wed, 17 Feb 2010 19:44:01 EST 

更新:要設置時區看到date_timezone_set() 。如果您需要根據字符串中的偏移量設置時區,則可能需要進行一些解析。對於一些幫助,請參閱date_parse_from_format()和相關函數getdate(),date_parse()等。http://us2.php.net/manual/en/ref.datetime.php

+0

使用date()+ strtotime()似乎沒有辦法,因爲它將它轉換爲服務器的時區(在我的情況下是PST)。 – 2010-02-18 04:31:34

+0

查看我的更新關於'date_parse_from_format()' – 2010-02-18 04:35:35

0

問題是,當EST等於UTC - 5小時時,-0500也可能表示其他時區,例如CDT,這是夏令時期間的中央時區。

所以簡單地說,沒有一對一的映射。除了時區偏移之外,您還需要知道位置以確定友好名稱。這就是爲什麼操作系統在設置時區時要求您爲您的城市提供服務的原因。