Вопрос

Я пытаюсь вставить дату и время в поле 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.

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

Это было полезно?

Решение

$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

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

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, чтобы выглядеть так. И в вашем запросе, который необходимо инкапсулировать в оценочных марках.

  • Либо вы преобразуете строку, чтобы быть в YYYY-MM-DD HH:MM:SS Формировать себя,
  • или вы используете str_to_date() Функция от MySQL.

    Вставьте в таблицу значений TATETIME (STR_TO_DATE ($ DEATE »,% m /% d /% y% h:% I"))

Насколько я помню, по умолчанию по умолчанию DateTime MySQL должен быть в формате «Yyyy-MM-DD HH: MM: SS».

Я добавил дату и время в базу данных MySQL через API следующим образом:


Вызов API

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

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

Он будет хранить odate как 23 марта 2012 г., а otime как 16:45:45.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top