Я очень стараюсь сделать некоторые проверки даты. Я создал как 3 разные функции, все они работают, но не в особых случаях.Дата выдачи текущей даты
Последнее, что я сделал это:
public function valid_date($date, $format = 'd/m/Y'){
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) == $date;
}
Я получил эту функцию из PHP-сайте, и, как я думал, что это работало лучше, чем у меня, я заменил его.
Формат даты пользователь должен ввести в дд/мм/гггг и в формате базы данных является гггг-мм-дд 00:00:00
Когда я ввести эту неверную дату: 30/30/1996 функция распознает его как действительную дату. Тогда у меня есть эта другая функция, чтобы взорвать «/» и сделать ее как формат базы данных с «-», и в этой функции она дает мне ошибку:
DateTime :: __ construct(): Не удалось проанализировать время строка (1996-30-30) в положении 6 (0): Неожиданный символ»
public function explodingDates($date){
list($day,$month,$year) = explode('/', $date);
$newDate = $year.'-'.$month.'-'.$day;
return (new \Datetime($newDate));
}
горю мой мозг здесь, не знаю, что еще нужно сделать для проверки. Он также должен быть готов получить любые входные данные (например, «askhdakjdh», «123213», «1.25/269») и вернуть недопустимую дату.
Заранее благодарен
@ Fred-II- Короче: * shouln't *. Предлагаете ли вы назначить выражение? – BlitZ
В обратном случае есть «\», это опечатка? – Wilmer
@ Fred-ii- почему публика вызывает ошибку? – Limon