оператор else не работает для следующего php-кода - PullRequest
0 голосов
/ 26 июня 2018

У меня есть расписание врачей с датами, и я возвращаю только те даты, которые больше, чем сегодня. Но когда есть даты, которые предшествуют сегодняшнему дню, за которые я не могу вернуть No dates available.

Вот мой код:

$lists =  Gateway::Onlineschedule()->schedulelist($inputs['doctor_id']);
$today=date("d/M/Y");

if(count($lists) == 0)
{
    return 'No entry detected';

}
else
{
    foreach ($lists as $list) 
    {

        $api_procedure['Day'] = $list->day; 

        if($api_procedure['Day']>$today)
        {
            $listing[] = $api_procedure;
        }
        else
        {
            return 'No dates available';
        }
    }

    return json_encode($listing);

}

dd ($ lists) возвращает

Collection {#273
  #items: array:3 [
    0 => {#272
      +"id": 1
      +"doctor_id": "EZD0004"
      +"day": "13/Jun/2018"
      +"time_slot": "10:00PM,11:00PM,12:00PM"
      +"status": "Available"
}
1 => {#270
      +"id": 3
      +"doctor_id": "EZD0004"
      +"day": "24/Jun/2018"
      +"time_slot": "12:00pm,1:00pm"
      +"status": "admitted"
}
]
}

Что я должен изменить, чтобы получить желаемый результат?

Это в рамках Laravel. Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018
$inputs = \Input::all();
$lists =  Gateway::Onlineschedule()->schedulelist($inputs['doctor_id']);
$today = Carbon::today()->format('d/M/Y');

$new_records = [];
        foreach ($lists as $list) 
        {
            $api_procedure['Day'] = $list->day; 
            $api_procedure['Day'] = Carbon::createFromFormat('d/M/Y', $api_procedure['Day'])->format('d/M/Y');

            if($api_procedure['Day'] > $today)
            {
                $new_records[] = $api_procedure;
            }

        }

        if(count($new_records) > 0) 
        {
             return $new_records;
        } 
        else 
        {
            return 'No records';
        }
0 голосов
/ 26 июня 2018

Я предлагаю вам сначала преобразовать обе даты в метку времени. Напишите ваше заявление if else следующим образом:

$api_procedure['Day'] = strtotime(date("Y-m-d", strtotime($list->day))); 

$today = strtotime('now');

if ($api_procedure['Day'] > $today) {
    $listing[] = $api_procedure;
} else {
    return 'No dates available';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...