Почему выдается разница во времени между одной и той же timezone?
Почему вот такой код выдает разницу во времени:
$cur_tz = new DateTimeZone('Asia/Yekaterinburg');
$dt = new DateTime('now', $cur_tz);
$cur_tz2 = new DateTimeZone('Asia/Yekaterinburg');
$dt2 = new DateTime('now', $cur_tz2);
echo $cur_tz2->getOffset($dt);
По моим ожиданиям результат должен быть 0, а я получаю 18000.
getOffset это не разница, а просто смещение в любом случае от UTC, только по "правилам" той таймзоны с которой "сравнивается". (Подразумевается видимо что-то вроде летнего или зимнего времени которое существует не везде) php.net/manual/ru/datetimezone.getoffset.php