Я хочу сохранить дату в своей базе данных MySQL, но получаю эту ошибку:
user::__construct() должен быть экземпляром даты, заданной строки
Я попытался преобразовать результат даты моего типа ввода в метку времени, используя эту строку:
$myDate = date('Y-m-d', strtotime($_POST['birthdate']));
И я получил эту ошибку:
Примечание. Неопределенный индекс: 2020-11-11
user::__construct() должен быть экземпляром даты, задан нулевым значением.
Когда я пытаюсь повторить тип данных переменной $myDate, он дает мне String.
Вот мой код:
if (isset($_POST['name']) and isset($_POST['surname']) and
isset($_POST['birthdate']) and isset($_POST['email'])
and isset($_POST['password'])){
//$myDate = date('Y-m-d', strtotime($_POST['birthdate']));
//echo $myDate;
//echo gettype($myDate);
$user1= new
user($_POST['name'],$_POST['surname'],$_POST['birthdate'],$_POST['email'],$_POST['password']);
$userCores= new userCores();
$userCores->addUser($user1);
//header('Location: showUser.php');
}
else
{
echo "Missing fields" ;
}
HTML:
<form name="RegisterForm" method="POST" action="register.php">
<div class="form-group">
<label for="nom">Nom <sup class="text-danger">*</sup></label>
<input type="text" class="form-control" id="name" name="name" placeholder="Entrer
votre nom" >
</div>
<div class="form-group">
<label for="prenom">Prenom <sup class="text-danger">*</sup></label>
<input type="text" class="form-control" id="surname" name="surname"
placeholder="Entrer votre prenom" >
</div>
<div class="form-group">
<label for="birthDate">date de naissance <sup class="text-danger">*</sup></label>
<input type="date" class="form-control" id="birthdate" name="birthdate"
placeholder="Entrer votre date de naissance" >
</div>
<div class="form-group">
<label for="email">Email <sup class="text-danger">*</sup></label>
<input type="email" class="form-control" id="email" name="email" placeholder="Entrer
votre email" >
</div>
<div class="form-group">
<label for="password">Mot de passe <sup class="text-danger">*</sup></label>
<input type="password" class="form-control" id="password" name="password"
placeholder="Mot de passe" >
</div>
<button type="submit" class="btn btn-primary-color w-100" >Envoyer</button>
</form>
PS: я использую PHP 7.4, поэтому вот мой конструктор:
private String $id;
private String $name;
private String $surname;
private date $birthdate;
private String $email;
private String $password;
function __construct(String $name, String $surname,date $birthdate, String $email,String $password){
$this->name = $name;
$this->surname = $surname;
$this->birthdate = $birthdate;
$this->email = $email;
$this->password = $password;
}
(Когда я меняю тип на строку и тип ввода на текст, он работает нормально, поэтому я не думаю, что проблема в моем запросе).
Вот скриншот, когда я передаю временную метку объекту
Этот экран, когда я передаю дату типа ввода
date
, но есть класс с именемDateTime
. Это то, что вы хотели? Если это так, вам следует создать экземпляр этого класса и вместо этого передать его. - person Dharman   schedule 16.11.2020