【发布时间】:2018-12-29 07:38:40
【问题描述】:
我需要 PHP DateTime 的帮助,将 TimeZone 转换为 MongoDB\BSON\UTCDateTime。 如果我有字符串 "2015-10-20T04:02:00.608000+01:00" 它会给我一个 DateTime
$date = DateTime::createFromFormat( 'Y-m-d\TH:i:s.uT', $string );
DateTime
date => "2015-10-20 04:02:00.608000"
timezone_type => 1
timezone => "+01:00"
如果我将其转换为 MongoDB\BSON\UTCDateTime 并转换回 PHP DateTime
$mDate = new \MongoDB\BSON\UTCDateTime( $date->format('U') * 1000 );
$mDate->toDateTime()->setTimeZone(new DateTimeZone('Europe/Bratislava'))
我会得到正确的结果05:02
DateTime
date => "2015-10-20 05:02:00.000000"
timezone_type => 3
timezone => "Europe/Bratislava"
但如果输入字符串具有 +02:00 TimeZone "2015-10-20T04:02:00.608000+02:00" 并使用相同的方法得到结果是
DateTime
date => "2015-10-20 04:02:00.000000"
timezone_type => 3
timezone => "Europe/Bratislava"
如果我预期 06:02,为什么第二个结果是 04:02?
【问题讨论】:
-
您能告诉我们您是如何创建您的第一个 PHP DateTime 的吗?
-
问题已更新。就在那里。