Как перевести местное время в формат UTC? - PullRequest
2 голосов
/ 25 июня 2011

У меня есть дата

$timeZome = timezone_open('Europe/Kiev');
$date = new DateTime();
$date->setTimezone($timeZome);
$date->setDate(2011, 06,25);
$date->setTime(11,35,00);

Как преподнести подобное?

20110625T040000Z

Ответы [ 2 ]

4 голосов
/ 25 июня 2011

Это будет делать то, что вы хотите:

$date = new DateTime();
$date->setTimezone(new DateTimeZone('Europe/Kiev'));
$date->setDate(2011, 06,25);
$date->setTime(11,35,00);
$date->setTimezone(new DateTimeZone('UTC'));

echo $date->format('Ymd\THis\Z'); // format string to match question

Это довольно просто: установите дату / время / зону, измените часовой пояс и формат для печати. ​​

1 голос
/ 25 июня 2011

Возможно, вам просто нужно вызвать format для вашего объекта даты, я думаю.

echo $date->format('Ymd'); // 20110625

UPDATE: Вы можете использовать либо существующие константы в классе даты, либо, если ваши потребности отличаются от того, что предлагает дата, просто расширьте его и добавьте метод, который анализирует и возвращает вашу дату, отформатированную так, как вы хотите. к.

...