Insérer date et l'heure dans Mysql
Question
Je suis en train d'insérer date et l'heure dans datetime mysql champ. Lorsqu'un utilisateur de sélectionner une date et l'heure, il va générer deux variables POST. J'ai cherché Internet, mais toujours pas sûr de savoir comment le faire.
Mon code.
//date value is 05/25/2010
//time value is 10:00
$date=$_POST['date'];
$time=$_POST['time'];
$datetime=$date.$time
Si j'insère $ datetime dans mysql, la date semble être 0000-00-00: 00: 00: 00
Je l'apprécie si quelqu'un pouvait me aider à ce sujet. Merci.
La solution
$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00';
$datetime = mysql_real_escape_string($datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";
solution alternative qui peut gérer plusieurs formats:
$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')";
Autres conseils
La date doit avoir le format indiqué pour vous: 0000-00-00 00:00:00
, vous avez donc de le convertir. Il y a mille questions sur cette conversion ici sur le SO.
La voie est comme le plus court
list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);
Je pense que les regards format datetime comme ceci:
YYYY-MM-DD HH:MM:SS
donc vous devez formater votre datetime $ ressembler à ça. Et dans votre requête qui doit être encapsulées dans des marques de quoation.
- Soit vous transformez la chaîne à être au format
YYYY-MM-DD HH:MM:SS
vous, -
ou que vous utilisez la fonction
str_to_date()
de MySQL.Tableau INSERT INTO valeurs DATETIME (str_to_date ($ jour, "% m /% d /% Y% h:% i"))
Pour autant que je me rappelle, par défaut, datetime Mysql devrait être "aaaa-mm-jj hh: mm: ss".
J'ai ajouté date et l'heure via l'API db mysql comme ceci:
API d'appel
http://localhost/SendOrder.php?odate=20120323&otime=164545
- type
odate
est DATE - type
otime
est TIME DB.
Il stockera Odate comme 2012-03-23 ??et OTIME comme 16:45:45.