Таким образом, пользователь может ввести дату рождения, набрав его или используя средство выбора даты. Это может привести к ошибкам, поэтому на стороне сервера я бы хотел проверить, действительно ли это действительная дата.PHP check user input date
Я много читал о strtotime() и видел много примеров, но не 100% правильный.
Это то, что у меня есть:
$geboortedatum = $_POST['geboortedatum'];
$geboortedatum = date("Y-m-d", strtotime($geboortedatum));
list($y, $m, $d) = explode("-", $geboortedatum);
// var_dump(checkdate($d,$m,$y));
if(checkdate($d, $m, $y)) {
echo "OK Date";
}
else {
echo "BAD Date";
exit();
}
Это работает большую часть времени. Есть ли какой-либо надежный метод для проверки, является ли ввод реальной и правильной датой?
// EDIT
Это не хороший пример! Он также не работает, когда пользователь вводит 31-31-1980. Это также верно, хотя этого не должно быть!
StrToTime это хорошо, но это не экстрасенс. НЕ ИСПОЛЬЗУЙТЕ его для проверки произвольных входных форматов. Это будет ** рано или поздно. –
Хорошо, конечно, но как я могу проверить правильный ввод? Должно быть что-то, что я могу сделать, чтобы проверить, правильно ли это ... – Nick
ну, что такое 01-02-03? 1 февраля 2003 года? 3 января 2002 года? применять формат даты, и если то, что вводит пользователь, не подтверждается, удалите сообщение об ошибке в их лице. –