Временные метки считаются UTC.
$dt = new DateTime('Wed, 21 Jul 2010 00:28:50 GMT');
echo $dt->format('U'); // 1279672130
- это та же временная метка, что и
$dt = new DateTime('Wed, 21 Jul 2010 02:28:50 CEST');
echo $dt->format('U'); // 1279672130
Обратите внимание, что для форматирования U
требуется PHP5.3. При указании идентификатора часового пояса в строке даты объект DateTime распознает часовой пояс, поэтому при вызове следующего в экземпляре GMT DateTime
echo $dt->format('Y-m-d H:i:s');
вернется 2010-07-21 00:28:50
. Вы можете изменить часовой пояс объекта DateTime с помощью метода setTimezone()
.
$dt = new DateTime('Wed, 21 Jul 2010 02:28:50 GMT+2');
$dt->setTimezone(new DateTimeZone('UTC'));
echo $dt->format('Y-m-d H:i:s'); // 2010-07-21 00:28:50
Но если вам просто нужна временная метка, она не нужна.