Laravel Carbon Посмотрите, если дата в прошлом

Я очень смущен этим, может быть, чего-то простого я не вижу. Если я захочу узнать, прошло ли свидание в прошлом сегодня, я смогу сделать что-то подобное?

if( $league->date_start <= Carbon::now() ){
$join  = false;
$message = 'Sorry, the league has already started';
}

если я выброшу даты его

$league->date_start = 2017-07-31 00:00:00
Carbon::now() = 2017-11-01 16:29:27

$league->date_start это защищенная дата, так что его экземпляр углерода

Но это не работает, если я переключаю его на $league->date_start >= Carbon::now() это работает и не позволит мне присоединиться. Я знаю, что дата начала «лиги» в прошлом, поэтому не должно быть $league->date_start <= Carbon::now()?????

7

Решение

Есть встроенный метод Carbon isPast так что вы можете использовать:

$league->date_start->isPast()

определить, была ли дата в прошлом или нет

26

Другие решения

Попробуйте использовать if ($league->date_start->diffInSeconds() >= 0), Метод diffInSeconds возвращает разницу между текущим временем и вашим экземпляром углерода.

Вот пример вывода из повозки —

>>> $now = \Carbon\Carbon::now();
=> Carbon\Carbon {#648
+"date": "2017-11-01 16:41:04.000000",
+"timezone_type": 3,
+"timezone": "UTC",
}
>>> $now->diffInSeconds();
=> 5
>>> $now->diffInSeconds();
=> 7
>>> $now->diffInSeconds();
=> 8
>>> $now->diffInSeconds();
=> 10
>>> $now->diffInSeconds() > 0
=> true
2

Проверьте раздел «Сравнение» на углеродные документы. Вам следует позвонить $first->lte($second) сравнить два случая углерода.

1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector