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

Поле dateTimeTz

Метод dateTimeTz используется в миграциях Laravel для создания столбца с типом данных, который хранит дату и время вместе с временной зоной. Первым параметром передаётся имя колонки, вторым необязательным параметром можно указать точность (количество цифр для долей секунды). По умолчанию точность равна 0.

Синтаксис

<?php Schema::table('table_name', function (Blueprint $table) { $table->dateTimeTz($column, $precision = 0); }); ?>

Пример

Давайте создадим миграцию для таблицы 'events' с полем для хранения времени проведения события с учётом часового пояса:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::create('events', function (Blueprint $table) { $table->id(); $table->string('name'); $table->dateTimeTz('start_time'); $table->dateTimeTz('end_time', 3); $table->timestamps(); }); } public function down() { Schema::dropIfExists('events'); } }; ?>

В этом примере поле 'start_time' будет хранить дату и время с часовым поясом без долей секунды, а поле 'end_time' - с точностью до 3 знаков после запятой (миллисекунды).

Пример

Добавим поле с часовым поясом в существующую таблицу 'posts' для хранения времени публикации:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { Schema::table('posts', function (Blueprint $table) { $table->dateTimeTz('published_at')->nullable(); }); } public function down() { Schema::table('posts', function (Blueprint $table) { $table->dropColumn('published_at'); }); } }; ?>

Метод nullable позволяет полю принимать значение null, что удобно, если публикация ещё не состоялась.

Пример

Рассмотрим пример использования поля dateTimeTz в модели для форматирования даты с учётом часового пояса:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Event extends Model { protected $casts = [ 'start_time' => 'datetime:Y-m-d H:i:s e', 'end_time' => 'datetime:Y-m-d H:i:s.v e', ]; public function getFormattedStartTime() { return $this->start_time->format('Y-m-d H:i:s e'); } } ?>

В результате при получении данных из базы поле 'start_time' будет автоматически преобразовано в объект Carbon с учётом временной зоны.

<?php use App\Models\Event; $event = Event::find(1); $res = $event->getFormattedStartTime(); echo $res; ?>

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

"2026-09-08 15:30:00 UTC"

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

  • метод dateTime,
    который создаёт поле для хранения даты и времени без часового пояса
  • метод timestampTz,
    который создаёт поле для хранения временной метки с часовым поясом
  • метод date,
    который создаёт поле для хранения только даты
  • метод time,
    который создаёт поле для хранения только времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить