Можно просто изменить дату на основе смещения. Если вы хотите изменить это на другие часовые пояса, создайте дату с часовым поясом UTC.
$date = new DateTime('2011-02-23 05:00:00', new DateTimeZone('UTC'));
$date->modify(sprintf('%s%d hours', $offset < 0 ? '+' : '-', $offset));
Примечание: это будет работать, даже если смещение является строкой. то есть "-3" или "+3"
Тогда, например, если вы хотите увидеть это время в Мельбурне, Австралия.
$date->setTimezone(new DateTimeZone('Australia/Melbourne'));
echo $date->format('c');