Insertar fecha y hora en MySQL
Pregunta
Estoy tratando de insertar la fecha y la hora en MySQL fecha y hora campo. Cuando un usuario seleccionar una fecha y hora, generará dos variables POST. He buscado en Internet, pero todavía no está seguro de cómo hacerlo.
Mi código.
//date value is 05/25/2010
//time value is 10:00
$date=$_POST['date'];
$time=$_POST['time'];
$datetime=$date.$time
Si inserto $ fecha y hora en MySQL, la fecha parece ser 0000-00-00: 00: 00: 00
lo agradezco si alguien me podría ayudar en esto. Gracias.
Solución
$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00';
$datetime = mysql_real_escape_string($datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";
solución alternativa que puede manejar más formatos:
$datetime = $_POST['date'] . ' ' . $_POST['time'];
$datetime = mysql_real_escape_string($datetime);
$datetime = strtotime($datetime);
$datetime = date('Y-m-d H:i:s',$datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";
Otros consejos
Fecha debió formato que se muestra a usted: 0000-00-00 00:00:00
Por lo tanto, hay que convertirlo. Hay miles de preguntas acerca de esta conversión aquí en la SO.
El camino más corto es como
list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);
Creo que las miradas de formato de fecha y hora como esto:
YYYY-MM-DD HH:MM:SS
por lo que tiene que formatear el $ de fecha y hora para ver el estilo. Y en su consulta que necesita ser encapsulados en quoation marcas.
- O a transformar la cadena a estar en el formato
YYYY-MM-DD HH:MM:SS
mismo, -
o utiliza la función
str_to_date()
de MySQL.INSERT en valores de tabla DATETIME (STR_TO_DATE ($ fecha, "% m /% d /% Y% h:% i"))
Por lo que yo recuerdo, por defecto, MySQL de fecha y hora debe estar en "aaaa hh-mm-dd: mm: ss" formato.
He añadido fecha y la hora en la base de datos MySQL a través de la API de la siguiente manera:
llamada de API
http://localhost/SendOrder.php?odate=20120323&otime=164545
- tipo
odate
es FECHA - Tipo de
otime
es el tiempo en DB.
Se almacenará como Odate 2012-03-23 ??16:45:45 y como SIN HORA.