Domanda

Sto cercando di inserire la data e l'ora in MySQL datetime campo. Quando un utente seleziona una data e l'ora, genererà due variabili POST. Ho cercato internet, ma ancora non è sicuro come farlo.

Il mio codice.

//date value is 05/25/2010
//time value is 10:00

$date=$_POST['date'];
$time=$_POST['time'];

$datetime=$date.$time

Se inserisco $ datetime in MySQL, la data sembra essere 0000-00-00: 00: 00: 00

I grato se qualcuno mi potrebbe aiutare su questo. Grazie.

È stato utile?

Soluzione

$datetime = $_POST['date'] . ' ' . $_POST['time'] . ':00';
$datetime = mysql_real_escape_string($datetime);
$query = "INSERT INTO table(timestamp) VALUES ('$datetime')";

soluzione alternativa in grado di gestire più formati:

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

Altri suggerimenti

Data deve aver formato mostrato a voi: 0000-00-00 00:00:00

Quindi, è necessario convertirlo. Ci sono mille domande su questa conversione qui su SO.
La via più breve è come

list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);

Credo che gli sguardi formato datetime in questo modo:

YYYY-MM-DD HH:MM:SS

in modo che hai per formattare il $ datetime a guardare in quel modo. E nella query che deve essere incapsulati in marchi quoation.

  • O si trasformare la stringa di essere nel formato YYYY-MM-DD HH:MM:SS da soli,
  • o si utilizza la funzione str_to_date() da MySQL.

    INSERT INTO valori tavolo DATETIME (str_to_date ($ data, "% m /% d /% Y% h:% i"))

Per quanto mi ricordo, per impostazione predefinita, Mysql datetime dovrebbe essere in "hh aaaa-mm-dd: ss: mm" Formato.

ho data e l'ora aggiunto DB MySQL tramite API in questo modo:


chiamate API

http://localhost/SendOrder.php?odate=20120323&otime=164545

  1. tipo odate è DATA
  2. tipo otime è il tempo in DB.

Sarà memorizzare Odate come 2012-03-23 ??e NO ORA come 16:45:45.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top