Я пытаюсь вставить дату и время в 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
Итак, вы должны его преобразовать. Здесь, на SO, есть тысячи вопросов об этом преобразовании.
Самый короткий путь такой:
list($m,$d,$y) = explode("/",$_POST['date']);
$date = mysql_real_escape_string("$y-$m-$d ".$_POST['time']);
Я думаю, что формат даты и времени выглядит так:
YYYY-MM-DD HH:MM:SS
, поэтому вам нужно отформатировать свой $ datetime, чтобы выглядеть так. И в вашем запросе, который нужно заключить в кавычки.
YYYY-MM-DD HH:MM:SS
, либо используете функцию str_to_date()
из MySQL.
INSERT INTO table DATETIME values (str_to_date($date,"%m/%d/%Y %h:%i"))
Насколько я помню, по умолчанию в Mysql datetime должно быть в формате "yyyy-mm-dd hh:mm:ss".