Может быть несколько причин, почему это происходит, и мы не можем сказать вам, почему, потому что мы не знаем ваше приложение, поскольку оно может где-то изменить часовой пояс во время выполнения.
Вместо этого вам следует прекратить использование strtotime
и охватить объектно-ориентированные DateTime
функции.
Используя DateTime
, вы можете определить дату вместе с ее часовым поясом:
// local time
$date = new \DateTimeImmutable('1/1/2019', new \DateTimeZone('Europe/Bucharest'));
echo $date->format('U > d.m.Y (e)') , '<br>';
// convert to UTC
echo $date->setTimeZone(new \DateTimeZone('UTC'))->format('U > d.m.Y (e)');
Библиотека довольно мощная и более многословная, чем работа со строками и временными метками Unix.