PHP mysqli вставить дату из строки

Мне стало больно от всего этого материала. Вот что я пытаюсь:

$string = '24/10/1985'; $bday = explode('/', $string); $insertbday = $bday[2] . '-' . $bday[1] . '-' . $bday[0]; $insertbday = date("Ymd", $insertbday); mysqli_query($con, "INSERT INTO user (bday) VALUES ($insertbday)"); 

Но с 0000-00-00. Как это сделать правильно?

Второй параметр date – это метка времени. Используйте strtotime() для преобразования $insertbday .

Измените эту строку:

 $insertbday = date("Ymd", $insertbday); 

чтобы:

 $insertbday = date("Ymd", strtotime($insertbday)); 

Обновить

Кроме того, добавьте одинарные кавычки вокруг $insertbday для запроса:

 mysqli_query($con, "INSERT INTO user (bday) VALUES ('$insertbday')"); 

Вы должны попробовать это

 $string = '24/10/1985'; $bday = strtotime($string); $insertbday = date("Ymd", $bday); mysqli_query($con, "INSERT INTO user (bday) VALUES ($insertbday)"); 

date() ожидает отметку unix timestamp … и я думаю, что вы передаете ей дату в виде строки.

вы должны попробовать следующее:

 $insertbday = date("Ymd", strtotime($insertbday)); 

или кроме функции strtotime() вы можете попробовать ее с Datetime object

 $NewBday= new DateTime($insertbday); $NewBday= date( 'Ymd H:i:s', $NewBday);