转换“;2013-09-06格林尼治标准时间晚上10:30;以UTC表示的PHP DateTIme对象的字符串


Converting "2013-09-06 10:30pm GMT+1" string to PHP DateTIme object in UTC

我正在尝试将以下字符串:2013-09-06 10:30pm GMT+1转换为PHP DateTime对象。在此过程中,它还必须将其转换为UTC。我尝试了下面的代码,但显然这是不正确的,但我真的不知道从这里开始该怎么办:

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

我知道有很多类似的话题。但它们不包括这种格式和转换为UTC。由于转换为UTC,我认为不可能使用strtotime()

这会很好地工作:-

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

看到它在工作;

另请参阅http://php.net/date有关日期字符串格式的详细信息。

日期字符串的一个问题是"GMT+1"部分,没有有效的日期字符串(希望其他人能帮忙),所以在这种情况下很难使''DateTime::createFromFormat()工作。然而,DateTime构造函数在留给自己的设备时似乎能很好地处理它。