Вставить дату и время в Mysql

Я пытаюсь вставить дату и время в поле datetime mysql. Когда пользователь выбирает дату и время, он генерирует две переменные POST. Я искал в интернете, но до сих пор не уверен, как это сделать.

мой код.

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

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

$datetime=$date.$time

если я вставляю $datetime в mysql, дата кажется 0000-00-00:00:00: 00

Я ценю это, если кто-нибудь может помочь мне в этом. Спасибо.

6 ответов


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

альтернативное решение, которое может обрабатывать больше форматов:

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

дата должна иметь формат, показанный вам:0000-00-00 00:00:00

Итак, вы должны преобразовать его. Есть тысяча вопросов об этом преобразовании здесь, на SO.
Самый короткий путь, как

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

Я думаю, что формат datetime выглядит так:

YYYY-MM-DD HH:MM:SS

поэтому вам нужно отформатировать $datetime, чтобы выглядеть так. И в вашем запросе, который должен быть инкапсулирован в quoation marks.


  • либо вы преобразуете строку, чтобы быть в себя,
  • или вы используете str_to_date() функция из MySQL.

    вставить в таблицу DATETIME значения (str_to_date ($date, "%m / %d / %Y %h:%i"))


насколько я помню, по умолчанию MySQL datetime должен быть в формате" гггг-ММ-ДД чч:мм:СС".


я добавил дату и время в MySQL db через API, как это:


вызов API

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

  1. odate тип дата
  2. otime type-время в БД.

он будет хранить odate как 2012-03-23 и otime как 16:45: 45.