Метод timezone
Метод timezone класса Carbon применяется к объекту даты и времени
и позволяет изменить часовой пояс. Первым параметром передаётся
название часового пояса из списка поддерживаемых PHP.
Метод возвращает новый объект Carbon с изменённым часовым поясом,
при этом исходный объект остаётся неизменным.
Если нужно изменить часовой пояс без создания нового объекта,
следует использовать метод setTimezone.
Синтаксис
<?php
Carbon::timezone($timezone);
?>
Пример
Давайте создадим объект Carbon с текущей датой и временем и изменим его часовой пояс на 'Europe/Moscow':
<?php
use CarbonCarbon;
$date = Carbon::now();
$res = $date->timezone('Europe/Moscow');
echo $res->toDateTimeString();
?>
Результат выполнения кода:
"2026-09-08 15:30:45"
Пример
Давайте создадим конкретную дату и время и преобразуем её в часовой пояс 'America/New_York':
<?php
use CarbonCarbon;
$date = Carbon::create(2026, 9, 8, 12, 0, 0, 'UTC');
$res = $date->timezone('America/New_York');
echo $res->toDateTimeString();
?>
Результат выполнения кода:
"2026-09-08 08:00:00"
Пример
Метод timezone можно использовать в цепочках
с другими методами Carbon. Рассмотрим пример форматирования
даты с изменением часового пояса:
<?php
use CarbonCarbon;
$date = Carbon::parse('2026-09-08 10:00:00');
$res = $date->timezone('Asia/Tokyo')->format('Y-m-d H:i:s');
echo $res;
?>
Результат выполнения кода:
"2026-09-08 19:00:00"
Пример
Рассмотрим отличие метода timezone от метода
setTimezone. Первый возвращает новый объект,
а второй изменяет текущий:
<?php
use CarbonCarbon;
$date = Carbon::now('UTC');
$newDate = $date->timezone('Europe/London');
echo $date->tzName . "n";
echo $newDate->tzName;
?>
Результат выполнения кода:
"UTC"
"Europe/London"