php преобразовывают дату и время в UTC

Я нуждаюсь в простом способе преобразовать метку времени даты в UTC (от любого часового пояса, сервер находится в), НАДО НАДЕЯТЬСЯ, не пользуясь никакими библиотеками.

82
задан Jeremey 19 January 2010 в 17:55
поделиться

4 ответа

Попробуйте GetTimezone и Settimezone , см. Пример

(но это использует класс)

Обновление:

без каких-либо классов вы можете попробовать Что-то вроде этого:

$the_date = strtotime("2010-01-19 00:00:00");
echo(date_default_timezone_get() . "<br />");
echo(date("Y-d-mTG:i:sz",$the_date) . "<br />");
echo(date_default_timezone_set("UTC") . "<br />");
echo(date("Y-d-mTG:i:sz", $the_date) . "<br />");

Примечание. Вам может потребоваться установить часовой пояс обратно в оригинал

28
ответ дан 24 November 2019 в 09:02
поделиться

http://php.net/manual/en/function.strtotime.php Или если вам нужно не использовать строку, но вместо этого компоненты времени http://us.php.net /manual/en/function.mktime.php

1
ответ дан 24 November 2019 в 09:02
поделиться

Используйте strtotime для генерации временной метки из заданной строки (интерпретируемой как локальное время) и используйте gmdate для получения ее в виде отформатированной UTC-даты.

Пример

Как и было запрошено, вот простой пример:

echo gmdate('d.m.Y H:i', strtotime('2012-06-28 23:55'));
101
ответ дан 24 November 2019 в 09:02
поделиться

Если у вас есть дата в этом формате ГГГГ-ММ-ЧЧ дд: мм: сс, вы действительно можете обмануть php, добавив UTC в конце вашей «строки даты и времени» и используя strtotime для преобразования Это.

date_default_timezone_set('Europe/Stockholm');
print date('Y-m-d H:i:s',strtotime("2009-01-01 12:00"." UTC"))."\n";
print date('Y-m-d H:i:s',strtotime("2009-06-01 12:00"." UTC"))."\n";

Это напечатает следующее:

2009-01-01 13:00:00
2009-06-01 14:00:00

И, как вы можете видеть, он также решает проблему перехода на летнее время.

Немного странный способ решить эту проблему ....:)

14
ответ дан 24 November 2019 в 09:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: