I am trying to convert the following string: 2013-09-06 10:30pm GMT+1 to a PHP DateTime object. In the process, it also has to convert it to UTC. I tried the code below but obviously that was incorrect, but I don't really know where to go from here:

$datetime = DateTime::createFromFormat('YY-MM-DD HH-IIm tzcorrection', '2013-09-06 10:30pm GMT+1', new DateTimeZone('UTC'));

I know there are lot of similar topics out there. But they do not cover this format and the conversion to UTC. Because of the conversion to UTC, I believe it is not possible to use strtotime() for this.

有帮助吗?

解决方案

This will work just fine:-

$date = new \DateTime('2013-09-06 10:30pm GMT+1');
$date->setTimezone(new \DateTimeZone('UTC'));
var_dump($date);

See it working;

See also http://php.net/date for more information on date string formats.

One issue with your date string is the 'GMT+1' part, there is no valid date string for this (hopefully somebody else can help with that), so it is difficult to make \DateTime::createFromFormat() work in this case. However the DateTime constructor seems to cope with it quite well when left to its own devices.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top