Avatar ·

Formato de fecha PHP para insertar en campo DATETIME en MySQL: ¿cómo evitar errores?

¡Hola a todos! Soy nuevo en PHP y MySQL, y tengo un problema al guardar una fecha en la base de datos.

Tengo un formulario donde el usuario ingresa una fecha en formato dd.mm.aaaa (por ejemplo, 25.12.2023). Quiero guardar esta fecha en un campo DATETIME en MySQL. Estoy usando la función date() de PHP para formatear, pero nada funciona correctamente.

Aquí está mi código:

<?php
$user_date = $_POST['user_date']; // Llega "25.12.2023"
$formatted_date = date('Y-m-d H:i:s', strtotime($user_date));

$query = "INSERT INTO events (event_date) VALUES ('$formatted_date')";
mysqli_query($conn, $query);
?>

El problema es que en la base de datos se guarda 1970-01-01 00:00:00 o una cadena vacía. Probé diferentes formatos en date(), pero el resultado es el mismo. ¿Podrían indicarme cuál es el formato de fecha correcto para el campo DATETIME de MySQL? ¿Y por qué strtotime() no puede analizar mi formato?