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

Поле dateTime

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

Синтаксис

<?php // Создание колонки dateTime Schema::table('table_name', function (Blueprint $table) { $table->dateTime('column_name'); }); ?>

Метод возвращает экземпляр ColumnDefinition, что позволяет применять дополнительные модификаторы, такие как nullable или default.

Пример

Давайте создадим миграцию для таблицы 'events' с полем 'start_time' типа dateTime:

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

Пример

Добавим поле 'end_time' с точностью до миллисекунд (3 цифры для долей секунды):

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('events', function (Blueprint $table) { $table->dateTime('end_time', precision: 3)->nullable(); }); } public function down(): void { Schema::table('events', function (Blueprint $table) { $table->dropColumn('end_time'); }); } }; ?>

Второй параметр 3 указывает, что мы хотим хранить время с точностью до миллисекунд.

Пример

Теперь создадим модель Event и сохраним запись с датой и временем:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Event extends Model { protected $fillable = ['name', 'start_time', 'end_time']; protected $casts = [ 'start_time' => 'datetime', 'end_time' => 'datetime', ]; } ?>
<?php use App\Models\Event; use Illuminate\Support\Facades\Route; use Carbon\Carbon; Route::get('/create-event', function () { $event = Event::create([ 'name' => 'Laravel Meeting', 'start_time' => Carbon::now(), 'end_time' => Carbon::now()->addHours(2), ]); echo "Event created with ID: " . $event->id; }); ?>

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

"Event created with ID: 1"

Пример

Получим все события, у которых время начала позже текущего момента:

<?php use App\Models\Event; use Illuminate\Support\Facades\Route; use Carbon\Carbon; Route::get('/upcoming-events', function () { $res = Event::where('start_time', '>', Carbon::now())->get(); foreach ($res as $event) { echo $event->name . " starts at " . $event->start_time . "\n"; } }); ?>

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

"Laravel Meeting starts at 2026-09-08 14:30:00"

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

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