@sr36

Как сгенерировать диапазон дат в Faker Laravel?

Добрый день.
Стоит задача заполнить таблицу датами.
Всего 2 поля, start_date и end_date
Дата end_date не должна быть меньше start_date.
start_date генерируем случайно.
Написал следующий код, но при его выполнении start_date и end_date одинаковы
$factory->define(Visit::class, function (Faker $faker) {
    $startDate = $faker->dateTimeThisYear("-30 days");
    $endDate = $startDate->modify("+1 day");
    return [
        'start_date' => $startDate,
        'end_date' => $endDate
    ];
});
  • Вопрос задан
  • 373 просмотра
Решения вопроса 1
@genteelknight
Fullstack web developer
Даты одинаковые, потому что ты сначала начальную модифицируешь, а потом новую переменную создаешь. Тут надо либо DateTimeImmutable использовать, либо клонировать начальную дату:

$startDate = $faker->dateTimeThisYear("-30 days");
    $endDate = (clone $startDate)->modify("+1 day");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽