Как получить минимальную дату из коллекции Laravel - PullRequest
1 голос
/ 17 июня 2019

У меня есть коллекция promotions, и в каждой акции много exceptions:

foreach ($promotions as $p) {
    $t = $p->exceptions()
            ->where('sunday','on')
            ->whereDate('start','<=', $c_date)
            ->whereDate('end','>=', $c_date)
            ->get()
            ->sortBy('promotion_id');

    echo $t->min('start'). ' from: '.$t->min('start_time') .' ';
    echo $t->max('end') . ' to: '.$t->max('end_time').'</br>';
}

Поскольку в акции много исключений, мне нужно знать для каждой минимальной и максимальной даты каждой акции.

Приведенный выше код работает хорошо, но он использует 'start' в качестве строки, а не даты, а результаты недействительны.

Как получить минимальную дату и максимальную дату из коллекции.

1 Ответ

1 голос
/ 17 июня 2019

В идеале было бы целесообразно иметь одно поле DATETIME для каждого начала и конца, не разделяя дату и время (что может привести к ошибке). Но если вы действительно хотите разделить:

  • Убедитесь, что start & end сохранены как дата в БД, затем укажите такие атрибуты, как здесь
  • Если нет, убедитесь, что формат start & end в "ГГГГ-ММ-ДД" при сохранении значений
...