У меня есть простой код, который разделит даты диапазона на два. Вот оно:PHP Validate Диапазон Даты
HTML:
<input type="text" name="range" />
<button type="submit>Submit</button>
PHP
$range = $_POST['range'];
$reservation = explode("-", $range);
$from = date('Y-m-d', strtotime($reservation[0]));
$to = date('Y-m-d', strtotime($reservation[1]));
Расщепление даты работ, но всякий раз, когда я ставлю любой символ в текстовом поле и нажмите на кнопку отправить, я получите undefined offset: 1
, потому что у меня нет валидации для дат диапазона.
Есть ли способ, чтобы проверить варьировались даты, как, например, если я ставлю "10/29/2015 - 10/31/2015"
в текстовом поле и нажмите на кнопку отправить, я буду получать «success
» и если я ставлю любой символ, как «asdasdasda
», я буду получать «failed
».
Любая помощь будет высоко оценена.
UPDATE
Проверка, если вход в которые варьировались дату в настоящее время работает, но проверка даты нет. Я использую checkdate
функцию
$reservation = explode("-", $_POST['range']);
if (isset($reservation[0]) && isset($reservation[1])) {
$from = date('Y-m-d', strtotime($reservation[0]));
$to = date('Y-m-d', strtotime($reservation[1]));
$checkFrom = explode('-', $from);
$checkTo = explode('-', $to);
if (!checkdate($checkFrom[1], $checkFrom[2], $checkFrom[0]) || !checkdate($checkTo[1], $checkTo[2], $checkTo[0])) {
die('invaild date');
}
} else {
die('invaild date');
}
Используйте '! Empty()' check – jitendrapurohit
@JitendraPurohit, это будет проверять только на пустой вход? – FewFlyBy
Вам нужно сделать что-то вроде 'if (! Isset ($ reserve [1]))', чтобы убедиться, что 'explode' работал. Затем установите флажок 'if ($ from === false || $ to === false)', чтобы убедиться, что они содержат допустимые даты. – Mike