Углерод сегодня или предыдущие даты - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь запретить пользователям указывать даты меньше сегодняшней с использованием углерода и laravel 7. Моя дата имеет вид 02-02-2020. Я продолжаю получать эту ошибку. Вызов функции-члена lessThanOrEqualTo () для целого числа ".

case 4:

                        $todayDate = Carbon::now();

                        if (strlen($parts[3]) != 8) {

                            unset($session[3]);

                            $response = "CON C4C\nEnter a valid date of contact. DDMMYYYY eg  01122020";

                        } else {

                            try {

                                $session['date_of_contact'] = Carbon::createFromFormat('dmY', $parts[3])->format('Y-m-d ');

                                $this->setSession($session);

                                $userdate = strtotime($session['date_of_contact']);

                                if($userdate->lessThanOrEqualTo($todayDate)) {

                                    unset($session[3]);

                                    $response = "CON C4C\nFuture dates are invalid";
                                }

                                $response = $this->sessionOpeningTag . "What is the source of exposure?\n1 Patient\n2 Colleague\n3 Community\n4 Home\n5 Unknown";


                            } catch (Exception $exception) {

                                $response = $this->sessionClosingTag . "You have entered an invalid date";

                                $this->deleteSession($session);

                            }
                        }    

                        break;  

Ответы [ 2 ]

0 голосов
/ 28 июня 2020

Просто используйте:

$session['date_of_contact']->lessThanOrEqualTo(Carbon::today())

И избавьтесь от $todayDate, $userdate и strtotime

0 голосов
/ 19 июня 2020

Для синтаксического анализа строковых дат в объекты Carbon существует подход optimisti c.

$userdate = Carbon::parse($session['date_of_contact']);

Подход pessimisti c, вы должны указать формат.

 $userdate = Carbon::createFromFormat('d-m-Y', $session['date_of_contact']);
...