2010-05-28 17 views
11

Estoy tratando de insertar la fecha y la hora en el campo de fecha y hora de mysql. Cuando un usuario selecciona una fecha y hora, generará dos variables POST. He buscado en Internet pero aún no estoy seguro de cómo hacerlo.Inserte la fecha y la hora en Mysql

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 haber 0000-00-00: 00: 00: 00

lo agradezco si alguien me podría ayudar en esto. Gracias.

+1

+1 a todos respuesta! Gracias la respuesta de GSTo! – FlyingCat

Respuesta

7
$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')"; 
+0

buena solución! ¡Gracias! – FlyingCat

+0

hm .... alguien te dio -1 ... no estoy seguro de por qué ... – FlyingCat

+1

Porque el primer fragmento contiene una vulnerabilidad de inyección SQL. Uno más -1 de mí.:-P :-) – Notinlist

3

creo que el formato de fecha y hora se ve así:

YYYY-MM-DD HH:MM:SS 

por lo que tiene que formatear el $ de fecha y hora para parecerse a eso. Y en su consulta debe ser encapsulada en las marcas de las comillas.

2
  • O se transforman la cadena a estar en el formato YYYY-MM-DD HH:MM:SS mismo,
  • o bien utilizar la función str_to_date() de MySQL.

    INSERT INTO valores DATETIME de mesa (STR_TO_DATE (fecha $, "% m /% d /% Y% h:% i"))

1

Por lo que recuerdo, por defecto, de fecha y hora Mysql debe estar en formato "aaaa-mm-dd hh: mm: ss".

4

Fecha debió formato que se muestra a usted: 0000-00-00 00:00:00

Por lo tanto, hay que convertirlo. Hay miles de preguntas sobre esta conversión aquí en 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']); 
0

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

  1. odate Tipo es FECHA
  2. otime tipo es TIME en DB.

Almacenará Odate como 2012-03-23 ​​16:45:45 y como SIN HORA.

Cuestiones relacionadas