Laravel, с использованием разностей дат с несколькими переменными - PullRequest
0 голосов
/ 03 марта 2020

Я знаю, что могу использовать $date_diff($request->start_date, $request->end_date), чтобы получить разницу между двумя датами, но мне нужно явное сравнение дат, чтобы сказать: «Если дата окончания на 60 дней больше даты начала, выведите« error »»

Так что $request->end_date > $request->start_date работает в целом, но я не могу найти лучший способ проверить, не превышает ли это 60 дней или более чем начальную дату.

Какой лучший способ сделать это?

$request->start_date->format('Y-m-d');
$request->end_date->format('Y-m-d');

if($request->end_date > $request->start_date) { 
 echo 'Error';
}

Ответы [ 3 ]

2 голосов
/ 03 марта 2020

Вы можете сделать это sh разными способами.

Одним из решений является использование метода diffInDays() Углерода.

if ($startDate->diffInDays($endDate) > 60)
{
  // throw an error..
}

Или вы можете добавить дни к дата начала, чтобы затем сравнить, если это до или после второй даты:

if ($startDate->addDays(60)->isBefore($endDate))
{
  // throw an error..
}

Для получения дополнительной информации, проверьте этот раздел Carbon docs.

0 голосов
/ 03 марта 2020

Вы можете использовать strtotime, который преобразует строку даты в unix отметку времени

if(strtotime($request->end_date) > ((60*24*60*60) + strtotime($request->start_date))) { 
 echo 'Error';
}

Объяснение:

60*24*60*60 - это 60 дней, время 24 часа, время 60 минут, время 60 секунд.

0 голосов
/ 03 марта 2020

Если вы используете Laravel, у вас есть доступ к превосходной Carbon библиотеке дат.

Существует несколько функций для сравнения дат, но вам нужно будет выбрать gt() (т.е. больше чем)

if ($request->end_date->gt($request->start_date)) { 
    echo 'Error';
}

Если вы хотите включить приравненные даты, вы также можете использовать gte()


Если $request->end_date еще не приведен как объект Carbon для этого можно использовать Carbon::parse() или Carbon::createFromFormat().

Документацию можно найти здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...