Я создал функцию, которая использует PHP FILTER_VALIDATE_REGEXP.
Более того, основное внимание на самом деле уделяется совпадению регулярных выражений.
Регулярное выражение ниже создано для соответствия следующим шаблонам:
2019-07-09 или 2019-07-09 + 15: 30: 05
Вопрос 1 :Почему $ REGEXP_1 возвращает true для плюса и пробела , когда я четко использую пробел?
index.php / reports /? From = 2019-07-09 + 15: 30:05
TRUE
index.php / reports /? From = 2019-07-09 15: 30: 05
TRUE
// ACTIVE REGEX
$REGEXP_1 = '/^([0-9]{4})-([0-1][0-9])-([0-3][0-9])(?:(\s)([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/';
// PREPARE FILTER - STRING
$FILTER_VALIDATE_REGEXP_STRING = [
'filter' => FILTER_VALIDATE_REGEXP,
'options' => [ 'regexp' => $REGEXP ]
];
.
2019-07-09 или 2019-07-09 + 15: 30: 05
Вопрос 2 :Почему $ REGEXP_2 возвращает false для плюса и пробела , когда я четко использую плюс?
index.php / reports /? From = 2019-07-09 + 15: 30:05
FALSE
index.php / reports /? From = 2019-07-09 15: 30: 05
FALSE
// ACTIVE REGEX
$REGEXP_2 = '/^([0-9]{4})-([0-1][0-9])-([0-3][0-9])(?:(\+)([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/';
// PREPARE FILTER - STRING
$FILTER_VALIDATE_REGEXP_STRING = [
'filter' => FILTER_VALIDATE_REGEXP,
'options' => [ 'regexp' => $REGEXP ]
];