我有一个事件的两个输入字段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。
答案 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;
}