2011-03-08 121 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)当然不会在意。)