Введите дату и время в Mysql - PullRequest
11 голосов
/ 28 мая 2010

Я пытаюсь вставить дату и время в поле mysql datetime. Когда пользователь выбирает дату и время, он генерирует две переменные 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 ]

7 голосов
/ 28 мая 2010
$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')";
4 голосов
/ 28 мая 2010

Дата должна отображаться в формате: 0000-00-00 00:00:00

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

list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);
3 голосов
/ 28 мая 2010

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

YYYY-MM-DD HH:MM:SS

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

2 голосов
/ 28 мая 2010
  • Либо вы преобразуете строку в формат YYYY-MM-DD HH:MM:SS,
  • или вы используете функцию str_to_date() из MySQL.

    INSERT INTO значения таблицы DATETIME (str_to_date ($ date, "% m /% d /% Y% h:% i"))

1 голос
/ 28 мая 2010

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

0 голосов
/ 31 января 2015

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


API вызовов

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

  1. odate тип ДАТА
  2. otime тип - ВРЕМЯ в БД.

Он будет хранить дату 2012-03-23 ​​и время 16: 45: 45.

...