Я очень смущен этим, может быть, чего-то простого я не вижу. Если я захочу узнать, прошло ли свидание в прошлом сегодня, я смогу сделать что-то подобное?
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()
?????
Есть встроенный метод Carbon isPast
так что вы можете использовать:
$league->date_start->isPast()
определить, была ли дата в прошлом или нет
Попробуйте использовать 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
Проверьте раздел «Сравнение» на углеродные документы. Вам следует позвонить $first->lte($second)
сравнить два случая углерода.