web-dev-qa-db-fra.com

Insérer la date actuelle au format date et heure mySQL

Je ne parviens pas à insérer correctement la date dans ma base de données.

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

J'utilise ce format, et, il fait écho correctement, cependant, quand j'insère

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

cela ne semble pas fonctionner correctement, et le temps reste à 00:00:00 Si vous pouviez trouver la solution qui serait formidable, merci.

76
CCates

Si vous souhaitez enregistrer l'heure actuelle, utilisez simplement les fonctions de MYSQL.

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

Si vous avez besoin d’utiliser PHP pour le faire, le formater Y-m-d H:i:s alors essayez

$date = date('Y-m-d H:i:s');
mysql_query("INSERT INTO `table` (`dateposted`) VALUES ('$date')");
183
Aaron W.

Essayez ceci à la place

$date = date('Y-m-d H:i:s');
32
Erik Giberti

NOW() est utilisé pour insérer la date et l'heure actuelles dans la table MySQL. Tous les champs avec les types de données DATETIME, DATE, TIME & TIMESTAMP fonctionnent bien avec cette fonction.

AAAA-MM-JJ HH: mm: SS

Manifestation:

Le code suivant montre l'utilisation de NOW()

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

vous pouvez utiliser CURRENT_TIMESTAMP, fonction mysql 

4
Diar Selimi

définissez la type de la colonne nommée dateposted sur DATETIME et exécutez la requête suivante:

INSERT INTO table (`dateposted`) VALUES (CURRENT_TIMESTAMP)
3
Abdullah

" datetime " s'attend à ce que la date soit formatée comme suit: AAAA-MM-JJ HH: MM: SS

alors formatez votre date comme ça lorsque vous insérez.

1
Jan Hančič

La meilleure façon de rendre cela plus simple et efficace est la suivante:

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

Maintenant, lorsque vous insérez une ligne dans une table, vous pouvez ignorer ce champ (time_updated) car il se remplira avec l'heure actuelle comme valeur par défaut

0
Prakash GPz
     <?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">

0
PratapSingh hajari

Si vous passez la date à partir de PHP, vous pouvez utiliser n’importe quel format en utilisant STR_TO_DATE() fonction_mysql . Laissez le conseder que vous insérez la date via le format HTML 

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

La dateposted devrait être de type mysql date. ou mysql ajoute 00:00:00
dans certains cas, vous feriez mieux d’insérer la date et l’heure ensemble dans la base de données pour pouvoir calculer en heures et en secondes. ().

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

Je crois que vous devez changer votre code un peu comme suit le long de votre type de base de données. 

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

Espérons, fonctionnera parfaitement. 

0
tisuchi

$ date = date ('Y-m-d H: i: s'); avec le type: 'datetime' a très bien fonctionné pour moi car je voulais imprimer la date entière et l'horodatage ..

$ date = date ('Y-m-d H: i: s'); $ stmtc-> bindParam (2, $ date);

0
Rehan

Utilisez simplement avec votre fuseau horaire: 

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