我想使用PHP的filter_input和FILTER_VALIDATE_INT来分辨小时和分钟的时间。问题是当时间如03:07
时,此函数返回false$hours_range = array (
'options' => array (
'min_range' => 0,
'max_range' => 23
)
);
$minutes_range = array (
'options' => array (
'min_range' => 0,
'max_range' => 59
)
);
filter_input(INPUT_POST, 'hour', FILTER_VALIDATE_INT, $hours_range)
filter_input(INPUT_POST, 'minute', FILTER_VALIDATE_INT, $minutes_range)
答案 0 :(得分:2)
嗯......你可以在这里尝试另一个过滤器 - 我可能会尝试FILTER_VALIDATE_REGEXP
。也许是这样的:
$mins = filter_input(INPUT_POST, 'hour', FILTER_VALIDATE_REGEXP, ['options' => [
'regexp' => '/\d{1,2}/']
]);
在这里添加正则表达式\d{1,2}
作为示例,显然您可能希望在此处更好地定义。或者,您可以使用FILTER_CALLBACK
并定义一个回调,您可以在其中检查您的值是否为int
并明确在您所需的数值范围内。