检查PHP中的多个 - 如果不是 - 条件

时间:2018-03-28 09:24:52

标签: php if-statement conditional

我有一个事件的两个输入字段whit开始和结束时间。我只想要时间为xx:00或xx:30格式。前端是照顾,但我想在后端验证输入。以下是我从发布时间仅检索分钟的方式。

function validate_time($start_time,$end_time)
{
    $start_time_min = substr($start_time,-2,2);
    $end_time_min = substr($end_time,-2,2);

    if ($start_time_min != '00' || $end_time_min != '00')
    {
        return false;
    }
    if ($start_time_min != '30' || $end_time_min != '30')
    {
        return false;
    }
    return true;
}

以上if语句总是返回false,所以我需要的是只有在开始或结束时间不是00或者不是30时才返回false。

3 个答案:

答案 0 :(得分:3)

在上述情况下使用或(||)是导致问题的原因,因为您会发现其中一个是!= 0或30。

if ($start_time_min != '00' && $start_time_min != '30')
{
    return false;
}
if ($end_time_min != '00' && $end_time_min != '30')
{
    return false;
}

答案 1 :(得分:1)

您可以使用单个If条件,例如此代码:

function validate_time($start_time,$end_time)
{
    $start_time_min = substr($start_time,-2,2);
    $end_time_min = substr($end_time,-2,2);    
    if (($start_time_min != '00' && $start_time_min != '30') || ($end_time_min != '00' && $end_time_min != '30'))
    {
        return false;
    }
    return true;
}

答案 2 :(得分:-1)

试试这个:

function validate_time($start_time,$end_time)
{
   $startTime = explode(':', $start_time);
   $endTime = explode(':', $end_time);
   if ($startTime[1] !='00' || $endTime[1] !='30') {
     return false;
   }
   return true;
}