Я нуждаюсь в простом способе преобразовать метку времени даты в UTC (от любого часового пояса, сервер находится в), НАДО НАДЕЯТЬСЯ, не пользуясь никакими библиотеками.
Попробуйте 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 />");
Примечание. Вам может потребоваться установить часовой пояс обратно в оригинал
http://php.net/manual/en/function.strtotime.php Или если вам нужно не использовать строку, но вместо этого компоненты времени http://us.php.net /manual/en/function.mktime.php
Используйте strtotime для генерации временной метки из заданной строки (интерпретируемой как локальное время) и используйте gmdate для получения ее в виде отформатированной UTC-даты.
Как и было запрошено, вот простой пример:
echo gmdate('d.m.Y H:i', strtotime('2012-06-28 23:55'));
Если у вас есть дата в этом формате ГГГГ-ММ-ЧЧ дд: мм: сс, вы действительно можете обмануть 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
И, как вы можете видеть, он также решает проблему перехода на летнее время.
Немного странный способ решить эту проблему ....:)