2012-03-02 44 views
61

Tengo problemas para insertar la fecha correctamente en mi base de datos.Insertar fecha actual en formato de fecha y hora mySQL

$date = date('m/d/Y h:i:s', time()); 

que utilizan este formato, y, sin embargo, se hace eco de manera correcta, cuando, inserto

mysql_query("INSERT INTO table 
(dateposted) 
VALUES ('$date')"); 

que no parece trabajar con éxito y, el tiempo sigue siendo las 00:00: 00 Si pudiera encontrar la solución que sería genial, gracias.

+0

¿Qué tipo es "dateposted" ? –

+1

Fecha de entrada es el formato de fecha y hora. – CCates

Respuesta

154

Si usted está buscando para almacenar la hora actual sólo tiene que utilizar las funciones de MySQL.

mysql_query("INSERT INTO `table` (`dateposted`) VALUES (now())"); 

Si necesita usar PHP para hacerlo, el formato que Y-m-d H:i:s a fin de tratar

$date = date('Y-m-d H:i:s'); 
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')"); 
+16

Pero usará la configuración regional del servidor MySQL/zona horaria. Si U tiene Apache/PHP y MySQL en diferentes servidores y la zona horaria configurada incorrectamente en uno de ellos, tendrá diferentes valores. –

+2

@Jeff_Alieffson tiene razón. Se prefiere usar 'UTC_TIMESTAMP()' (https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_utc-timestamp) en lugar de 'NOW()' – Ejaz

1

"datetime" espera que la fecha que se formatea así: AAAA-MM-DD HH: MM: SS

tan formato de la fecha de esa manera cuando se está insertando.

+0

Así que me gustaría salir ("AAAA/MM/DD HH: MM: SS", hora()) ;? – CCates

+0

¿No? usa guiones (-) no barras (/). –

+0

Bien gracias, lo tengo. – CCates

27

probar este lugar

$date = date('Y-m-d H:i:s'); 
5

NOW() se utiliza para insertar la fecha y la hora actual en la tabla de MySQL. Todos los campos con tipos de datos DATETIME, DATE, TIME & TIMESTAMP funcionan bien con esta función.

AAAA-MM-DD HH: MM: SS

Demostración:

código siguiente muestra el uso de NOW()

INSERT INTO auto_ins 
(MySQL_Function, DateTime, Date, Time, Year, TimeStamp) 
VALUES 
(“NOW()”, NOW(), NOW(), NOW(), NOW(), NOW()); 
2

puede utilizar CURRENT_TIMESTAMP, la función mysql

1

conjunto type de la columna denominada dateposted como DATETIME y ejecute la siguiente consulta:

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP) 
0
 <?php $date= date("Y-m-d"); 
$time=date("H:m"); 
$datetime=$date."T".$time; 
mysql_query(INSERT INTO table (`dateposted`) VALUES ($datetime)); 
?> 

<form action="form.php" method="get"> 
<input type="datetime-local" name="date" value="<?php echo $datetime; ?>"> 
<input type="submit" name="submit" value="submit"> 

+1

Bienvenido al desbordamiento de la pila! Buenas respuestas * explicar *, así como proporcionar código. Considere actualizar su respuesta para incluir una explicación sobre cómo funciona este código y por qué es la mejor opción. – Ajean

0

creo, tiene que cambiar su código poco como sigue junto con su base de datos de tipo presentado.

mysql_query("INSERT INTO table (`dateposted`) VALUES ($datetime)"); 

Hope, funcionará perfectamente.

0

Si pasa la fecha desde PHP puede usar cualquier formato usando la función mysql STR_TO_DATE(). Deje conseder va a insertar la fecha a través del formulario HTML

$Tdate = "'".$_POST["Tdate"]."'" ; // 10/04/2016 
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y')" ; 
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$Tdate')"); 

El dateposted debería haber MySQL date tipo. o mysql agregará 00:00:00
en algún caso Será mejor que inserte la fecha y la hora juntas en la base de datos para que pueda hacer el cálculo con horas y segundos.().

$Tdate=date('Y/m/d H:i:s') ; // this to get current date as text . 
$Tdate = "STR_TO_DATE(".$Tdate.", '%d/%m/%Y %H:%i:%s')" ; 
-4

Prueba este

$('#datepicker2').datepicker('setDate', new Date('<?=$value->fecha_final?>')); 
0

La mejor manera de hacer que sea más fácil y eficiente es la siguiente:

CREATE TABLE table_name (
field1, 
.. 
.. 
time_updated timestamp default current_timestamp 
) 

Ahora, cuando se inserta una fila en la tabla, puede saltarse este campo (time_updated) ya que se llenará con la hora actual como valor predeterminado

0

Solo use con su zona horaria:

date_default_timezone_set('Asia/Kolkata');  
$date=date("Y/m/d h:i:sa"); 
-1

uso de este

$date = date('m/d/Y h:i:s', time());

y luego en MySQL hacer

type=varchar

continuación se insertan correctamente la fecha y la hora

+0

su primera función es la misma que se utilizó en la pregunta. Y el resto de esta respuesta no garantiza la reapertura de una pregunta de 5 años. Explique por qué cree que su solución es mejor que las que se publicaron hace 5 años. –

+0

porque en una pregunta anterior no se explica sobre el tipo de datos –

+0

después de elegir DATETIME esta función almacenar 0000000 tan ..... –

Cuestiones relacionadas