2011-03-08 122 views
2

我有一個網頁,接收當前在本地電臺播放的歌曲。它從Radiotime.com獲取歌曲數據。我的問題是,託管我的頁面的服務器位於美國中部時區,因此,服務器接收的數據中的時間處於中央時間。然而,我和廣播電臺都位於東部時區,所以我希望我的網頁顯示的時間在東部時間。我可以欺騙服務器顯示的時區,還是可以將頁面上顯示的時間以某種方式轉換?任何幫助將不勝感激。 -Austin服務器上的欺騙時間

回答

1

嘗試,如果你使用PHP 5.1或更高版本可以使用date_default_timezone_set

date_default_timezone_set('America/New_York'); // set timezone to Eastern 
+0

我試過這個方法,但它似乎並不奏效。但我不太清楚爲什麼。我的代碼如下: <?php date_default_timezone_set('America/New_York'); #code to receive data – 2011-03-08 07:07:35

+0

@cheeseisedible:你使用的是什麼版本的PHP? – 2011-03-08 07:08:10

+0

@ Mark Elliot:我正在使用5.2.13 – 2011-03-08 07:10:58

0

嘗試

date_default_timezone_set('America/New_York'); 

$script_tz = date_default_timezone_get(); 

putenv("TZ=US/Eastern"); 

reference

+0

根據你的需要設置時區這裏是[list](http://www.php.net/manual/en/timezones.php) – diEcho 2011-03-08 07:05:35

0

如果你想的時候要爲整個服務器的不同,您可以更改服務器的時區。在Debian派生的發行版(如Ubuntu)上,您可以運行sudo dpkg-reconfigure tzdata來配置時區。

如果您只是希望Web服務器在不同的時區運行,則可以在/etc/init.d/nginx或類似的初始化腳本中設置TZ環境變量。

您也可以在您的特定程序中設置TZ環境變量;大多數語言提供了一個setenv或類似的功能,這會影響很多時間相關功能的輸出。 (gmtime(3)當然不會在意。)