Вы можете использовать DateTime
и DateTimeZone
. Также есть класс DateInterval
, который позволяет вам указать интервал, который вы можете использовать с DateTime::add
и DateTime::sub
.
<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . PHP_EOL;
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . PHP_EOL;
?>
Выходы:
2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45