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

Метод travel

Метод travel позволяет в тестах Laravel перемещаться вперёд или назад во времени. Он применяется к объекту тестового класса, который наследуется от TestCase, и возвращает экземпляр Carbon - текущее время после перемещения. Первым параметром передаётся количество единиц времени, вторым - строка с единицей измерения (например, 'second', 'minute', 'hour', 'day', 'week', 'month', 'year'). Если второй параметр не указан, используется 'second'. Также метод принимает третий параметр для указания относительности перемещения: 'absolute' или 'relative'. По умолчанию используется относительное перемещение.

Синтаксис

<?php $this->travel($value, $unit = 'second', $relative = 'relative'); ?>

Пример

Давайте переместимся на 5 дней вперёд и проверим время:

<?php use Carbon\Carbon; use Tests\TestCase; class ExampleTest extends TestCase { public function test_travel_forward() { $currentTime = Carbon::now(); $this->travel(5, 'day'); $newTime = Carbon::now(); $difference = $newTime->diffInDays($currentTime); echo $difference; } } ?>

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

"5"

Пример

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

<?php use Carbon\Carbon; use Tests\TestCase; class ExampleTest extends TestCase { public function test_travel_backward() { $currentTime = Carbon::now(); $this->travel(-2, 'hour'); $newTime = Carbon::now(); $difference = $newTime->diffInHours($currentTime); echo $difference; } } ?>

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

"2"

Пример

Давайте используем абсолютное перемещение в определённую дату:

<?php use Carbon\Carbon; use Tests\TestCase; class ExampleTest extends TestCase { public function test_travel_absolute() { $targetDate = Carbon::create(2025, 1, 1, 0, 0, 0); $this->travel($targetDate, 'absolute'); $newTime = Carbon::now(); echo $newTime->toDateString(); } } ?>

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

"2025-01-01"

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

  • метод travelTo,
    который устанавливает конкретное время
  • метод freezeTime,
    который замораживает текущее время
  • метод setUp,
    который выполняется перед каждым тестом
  • метод tearDown,
    который выполняется после каждого теста
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить