2014-03-12 42 views
1

我想創建一個DateTime對象,它也應該從給定的W3C日期字符串中設置正確的時區。 W3C日期的一個例子是:2014-03-12T09:30:04+0000如何從給定的W3C日期字符串創建新的DateTime實例?

我搜索了很多,無法找到它的解決方案。

我得到了什麼至今如下:

$dt = new DateTime(); 
$dt->setTimestamp(strtotime('2014-03-12T09:30:04+0000')); 
var_dump($dt); 

但我認爲這忽略了時區,doesn't呢?

+0

不,它不會忽略時區,您只是_think_,因爲您正在解釋調試輸出錯誤。 – CBroe

回答

1

你剛剛嘗試過嗎?

$dt = new DateTime('2014-03-12T09:30:04+0000'); 
print_r($dt); 

我的輸出:

DateTime Object 
(
    [date] => 2014-03-12 09:30:04 
    [timezone_type] => 1 
    [timezone] => +00:00 
) 

所以,這樣可以節省精的時區,但你可能不細解釋輸出;如果你想在當地時間打印它,那麼你必須做一些轉換。

+0

是的,這給我一個不正確的時間。 – alpham8

+0

請參閱已編輯的答案。 –

+0

謝謝,這通過在DateTime對象上將時區設置爲'Europe/Berlin'解決了我的問題。 – alpham8

1

嘗試

$dt = new DateTime('2014-03-12T09:30:04+0400'); 
var_dump($dt); 

最後4個數字是定義你的時區。

輸出

object(DateTime)#1 (3) { 
    ["date"]=> 
    string(19) "2014-03-12 09:30:04" 
    ["timezone_type"]=> 
    int(1) 
    ["timezone"]=> 
    string(6) "+04:00" 
} 

總之沒有它不能忽略時區。

相關問題