Исправление временной метки в переполнении стека

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

Я работаю с API, в котором есть ошибка: при условии, что временные метки не являются реальными метками времени UNIX, а из часового пояса CET.

Например, для этой отметки времени 1484521200

  • истинный смысл 2017-01-15T23:00:00+00:00
  • из API POV: 2017-01-16T00:00:00+00:00

Поэтому я рассматриваю следующий код для «преобразования» временной метки из CET в UTC:

date_default_timezone_set('CET');
$timezone = new DateTimeZone('UTC');
$date = date('Y-m-d H:i:s', $timestamp_API);
$date = DateTime::createFromFormat('Y-m-d H:i:s', $date, $timezone);
$timestamp_UNIX = $date->getTimestamp();
date_default_timezone_set('UTC'); // 1484524800

Но мне не нравится, когда я связываюсь с часовым поясом по умолчанию: есть ли лучший способ сделать это?

Лучше всего будет исправить API, но это произойдет не скоро.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]