2014-10-03 55 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