Полное руководство по работе с временем UTC в Laravel

В Laravel управление временем UTC имеет решающее значение для интернационализации и точной обработки операций даты и времени. В этой статье будут рассмотрены различные методы и приведены примеры кода для работы со временем UTC в Laravel.

  1. Использование класса DateTime:
    Класс DateTime — это встроенный класс PHP, который Laravel использует для обработки дат и времени. Чтобы работать со временем UTC, вы можете создать новый экземпляр DateTime и явно установить часовой пояс в формате UTC.
$dateTime = new DateTime('now', new DateTimeZone('UTC'));
  1. Использование библиотеки Carbon:
    Carbon — это популярная PHP-библиотека, упрощающая работу с датами и временем в Laravel. По умолчанию Carbon использует системный часовой пояс, но вы можете легко переключиться на UTC, используя метод setTimezone().
$carbon = Carbon\Carbon::now()->setTimezone('UTC');
  1. Использование класса CarbonImmutable:
    CarbonImmutable — это неизменяемый вариант библиотеки Carbon, что означает, что исходный экземпляр остается неизменным после операций. Он предоставляет метод inUtc()для преобразования экземпляра Carbon в формат UTC.
$carbonImmutable = Carbon\CarbonImmutable::now()->inUtc();
  1. Хранение времени UTC в базе данных.
    При сохранении даты и времени в базе данных рекомендуется использовать метод timestamps()при миграции Laravel. Этот метод автоматически устанавливает для столбцов «create_at» и «обновленное_at» метки времени в формате UTC.
Schema::create('table_name', function (Blueprint $table) {
    $table->timestamps();
});
  1. Получение времени UTC из базы данных:
    Чтобы получить время UTC из базы данных, Laravel автоматически преобразует временные метки в настроенный часовой пояс. По умолчанию Laravel использует часовой пояс, указанный в файле конфигурации app.php. Если вы хотите явно получить время в формате UTC, вы можете использовать метод asDateTime().
$record = Model::find(1);
$utcCreatedAt = $record->created_at->asDateTime();

Работа со временем UTC в Laravel необходима для точных операций даты и времени и интернационализации. Используя класс DateTime, библиотеку Carbon, класс CarbonImmutable и функции базы данных Laravel, вы можете легко управлять временем UTC и манипулировать им в своих приложениях Laravel.