簡體   English   中英

如何在php日期更改時區?

[英]How can I change timezones in a php date?

我有一個以這種格式存儲在數據庫中的日期:

2011-02-23 13:00:00

我需要以ISO8601格式返回它,但需要將其設置為特定的時區(不一定是服務器的時區。)我想要返回的是:

2011-02-23T13:00:00-0600

使用此代碼:

echo date(DATE_ISO8601, strtotime("2011-02-23 13:00:00"));

我明白了:

2011-02-23T13:00:00+0000

有沒有辦法重置日期或strtotime功能的時區,或者我是否需要剝離最右邊的5個字符並將所需的時區標記連接到剩余的日期/時間?

編輯添加:雖然我接受了下面使用新DateTime和設置新DateTimeZone的解決方案,但如果您不需要繼續重置時區,我發現了一種更簡單的方法:

date_default_timezone_set('America/Chicago');
$startTime = date(DATE_ISO8601, strtotime("2011-02-23 13:00:00"));

您可以使用DateTime類。 可以使用特定時區初始化日期時間對象,並輕松轉換為其他時間。

從手冊修改:

$date = new DateTime('2011-02-23 13:00:00', new DateTimeZone('Pacific/Nauru'));
echo $date->format('c') . "\n";

$date->setTimezone( new DateTimeZone('Europe/Berlin'));
echo $date->format('c') . "\n";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM