2014-10-03 40 views
0

我是新来的PHP。我正在为一个在线电视台构建一个网络应用程序,并正在制定一个节目时间表系统。我的问题是如何显示相对于最终用户的程序时间。因此,在美国东部时间早上7点播出的节目将显示为早上6点CST。有人知道一个简单的解决方案?谢谢PHP时区功能

+1

嗨,欢迎来到StackOverflow。如果你包含一个代码示例,显示你已经尝试过的东西,你会得到更好的答案! – 2014-10-03 04:14:52

+0

有关PHP的日期,时间和时区支持的文档可以在这里找到(http://php.net/manual/en/book.datetime.php)。 – 2014-10-03 04:19:06

回答

0

使用DateTime类,在本地时区解析程序时间,然后将时区设置为最终用户的时区并显示它。这里有一个简单的例子...

$dt = new DateTime('7am', new DateTimeZone('America/New_York')); 
echo $dt->format('r'); 
// Fri, 03 Oct 2014 07:00:00 -0400 

$dt->setTimezone(new DateTimeZone('America/Chicago')); 
echo $dt->format('r'); 
// Fri, 03 Oct 2014 06:00:00 -0500 
+1

请注意''CST'不是一个有效的PHP时区,但是'US/Central'是。 – worldofjr 2014-10-03 04:05:40

+0

@worldofjr奇怪,它适用于我,正如你可以从我上面的例子看到的,它是正确的(-0600)。无论如何,这只是一个例子 – Phil 2014-10-03 04:30:10

+1

尽管如此,仍然无效。我认为这有赖于你的服务器。见[PHP:其他时区](http://php.net/manual/en/timezones.others.php),你会注意到它没有列出。无论如何,这些时区只是为了向后兼容。例如,EST应该使用“America/New_York”。 – worldofjr 2014-10-03 04:32:16