【问题标题】:else statement not working for the following php codeelse 语句不适用于以下 php 代码
【发布时间】:2018-12-04 23:48:31
【问题描述】:

我有这个带有日期的医生日程表,只返回比今天大的日期。但是,如果有早于今天的日期,我无法返回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 框架中。 谢谢。

【问题讨论】:

  • 很可能您的查询不正确
  • 显示$lists的输出是什么:echo '<pre>' . print_r($lists, true) . '</pre>';
  • 使用dd($lists)查看其中包含的内容
  • 如果语句仅在我提供 else 它没有得到所需的输出时才有效,则查询是正确的@Akintunde Olawale。我已使用 dd @kerbholz 进行了更新
  • 问题可能出在$api_procedure['Day']>$today$today 是日期但$api_procedure['Day'] 是字符串,不是吗?

标签: php laravel laravel-5


【解决方案1】:

我建议您先将两个日期都转换为时间戳。以这种方式编写您的 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';
}

【讨论】:

  • 它不起作用。即使 $api_procedure['Day'] > $today 条件成立,它也会显示“没有可用日期”。我真的不明白我在哪里弄错了。Ealier我用 laravel carbon 来转换日期,然后也没有运气。
  • @gaan10 分别打印 $api_procedure['Day'] 和 $today 会得到什么?
  • @gaan10 很高兴知道您能够解决瓶颈
【解决方案2】:
$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';
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多