РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1024 of 1361 menu

Метод withTimeZone

Метод withTimeZone класса Clock создаёт и возвращает новый объект часов, который работает в заданном часовом поясе. Исходный объект при этом не изменяется. Первым параметром передаётся часовой пояс в виде объекта DateTimeZone. Полученные часы можно использовать там же, где и обычный Clock: для получения текущего времени через метод now.

Синтаксис

public function withTimeZone(DateTimeZone $timezone): static

Пример

Давайте создадим часы и переведём их в часовой пояс 'Europe/Moscow':

<?php namespace AppService; use SymfonyComponentClockClock; class ClockService { public function getMoscowTime(): string { $clock = new Clock(); $moscowClock = $clock->withTimeZone(new DateTimeZone('Europe/Moscow')); return $moscowClock->now()->format('Y-m-d H:i:s'); } } ?>

Результат выполнения кода:

"2024-01-01 15:30:00"

Пример

Давайте сравним время в двух разных часовых поясах:

<?php namespace AppService; use SymfonyComponentClockClock; class ClockService { public function compareTimeZones(): array { $clock = new Clock(); $utcClock = $clock->withTimeZone(new DateTimeZone('UTC')); $tokyoClock = $clock->withTimeZone(new DateTimeZone('Asia/Tokyo')); return [ 'utc' => $utcClock->now()->format('H:i'), 'tokyo' => $tokyoClock->now()->format('H:i'), ]; } } ?>

Результат выполнения кода:

["utc" => "12:00", "tokyo" => "21:00"]

Пример

Давайте используем withTimeZone вместе с DatePoint для вывода даты в нужном поясе:

<?php namespace AppService; use SymfonyComponentClockClock; use SymfonyComponentClockDatePoint; class ClockService { public function getDatePoint(): DatePoint { $clock = new Clock(); $newYorkClock = $clock->withTimeZone(new DateTimeZone('America/New_York')); return DatePoint::createFromInterface($newYorkClock->now()); } } ?>

Результат выполнения кода:

DatePoint {#1 +date: "2024-01-01 10:30:00.000000" +timezone_type: 3 +timezone: "America/New_York" }

Смотрите также

  • класс Clock,
    который предоставляет текущее время
  • метод now,
    который возвращает текущий момент времени
  • метод sleep,
    который приостанавливает выполнение на заданное время
  • класс DatePoint,
    который представляет дату и время
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить