Я создаю проверку сообщения в моем контроллере.
У меня проблема с датой.
Я создал в приложениях / библиотеках страницу MY_Form_validation. php страница в котором я написал это:
public function valid_date($date, $format = 'Y-m-d') {
$d = DateTime::createFromFormat($date, $format);
return $d && $d->format($format) === $date;
}
Затем я создал form_validation_lang. php с
<?php
$lang['form_validation_valid_date'] = 'The field {field} is not a valid date';
В то время как в моем контроллере у меня есть:
//load the libraries
$this->form_validation->set_rules('birthdate', 'birthdate', 'trim|required|valid_date');
if($this->form_validation->run() == FALSE){
$errors = $this->form_validation->error_array();
var_dump($errors);
$this->response($errors, 500);
return;
}
$person = array(
//..
'birthdate' => $this->post('birthdate'),
//...
);
Это печатает меня, что:
'birthdate' => 'string'
О моей БД в начале моего поля было Data, и я получил эту ошибку. Чем я изменил на Datetime, но ошибка та же.
Теперь это:
birthdate
дата NOT NULL,
Теперь, например, Я пытаюсь опубликовать дату, например «1960-04-20», и получаю сообщение об ошибке:
«дата рождения»: «Дата рождения в поле не является допустимой»
Я хочу написать в БД только дату, а не время, может ли это быть проблемой ?? Как я могу сделать, чтобы проверить дату?
Спасибо