我想创建一个DateTime对象,它也应该根据给定的W3C日期字符串设置正确的时区。W3C日期的一个例子是:2014-03-12T09:30:04+0000
我在谷歌上搜索了很多,但找不到解决办法。
到目前为止我得到的是:
$dt = new DateTime();
$dt->setTimestamp(strtotime('2014-03-12T09:30:04+0000'));
var_dump($dt);
但是我认为这忽略了时区,不是吗?
你试过吗?
$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
)
因此,它节省了fine时区,但您可能没有解释fine输出;如果你想用你的当地时间打印,那么你必须做一些转换。
try
$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"
}