2010-11-17 3 views
0

У меня есть два входа Время и дата. Я хочу преобразовать эти поля в один, используя php, и вставить их в поле datetime в mysql. Я думаю, мне нужно использовать STR_TO_DATE. Но я не уверен, как это сделать. Благодаряmysql преобразование ввода текста в поле datetime

Формат Временной код = 12:00 вечера
Date = 2010-11-17

ответ

0
$Time = "12:00 PM"; 
$Date = "2010-11-17"; 
$DateTime = $Date . " " . $Time; 

$timestamp = date('Y-m-d H:i:s',strtotime($DateTime)); 
+0

Это работает спасибо. – Eric

0

Это PHP, чтобы получить начальную и конечную дату:

$datef = (date("Y-m-d H-i-s",mktime($_POST['hour'], 0, 0, $_POST['month'], $_POST['day'], $_POST['year']))); 
$datel = (date("Y-m-d H-i-s",mktime($_POST['hour1'], 0, 0, $_POST['month1'], $_POST['day1'], $_POST['year1']))); 

Это было отправлено от нагрузки из html выпадающих списков!

Я знаю, что это точно не отвечает на ваш вопрос, но это даст вам хороший фундамент!

0

Вы должны использовать временную метку, это гораздо более легко управляемый стандарт с такой же степенью детализации, какой вам требуется для вашей текущей настройки.

Что касается «Преобразование» таблицы, это почти невозможно, вы должны сделать новую таблицу, переместите материал более, уронить старый и переименовать новый ...

+0

Временная метка не работает, это не форма входа, основанная на предпосылке полей ввода и людей, заполняющих их. Timestamp автоматически генерирует время и дату, но время и дату en попробуйте положить в базу данных не то, что я ищу. Также я не пытаюсь преобразовать всю таблицу im, конвертируя поля ввода, используя php, чтобы затем поместить данные в базу данных mysql. – Eric

+0

Timestamp - это формат, вы можете взять пользовательский ввод и поместить его в метку времени и без проблем, которые вы получите без него ... То, как вы это делаете, похоже на сохранение имени пользователя и фамилии в одном поле, потому что вы не могут беспокоиться о преимуществах их расщепления. –

0

Функция STR_TO_DATE действительно хороший вариант.

Вы могли бы попробовать что-то вроде этого:

STR_TO_DATE('2010-11-17 12:00 PM', '%Y-%m-%d %h:%i %p') 
+0

Поскольку у меня есть переменные ввода, как использовать их внутри STR_TO_DATE? – Eric

+1

Если вы используете php, выполните следующие действия: $ query = "INSERT INTO' table' ('date') VALUES (STR_TO_DATE ('". $ Date. "', '% Y-% m-% d% h: % i% p '); " –

1

Поскольку вы планируете использовать PHP, вы можете сразу установить в формат, который MYSQL будет принимать,
, такие как

$the_date = date('Y-m-d H:i:s', strtotime($date.' '.$time); 
$sql = "INSERT INTO YOUR_TABLE SET COL_FOR_DATE_TIME='{$the_date}'"; 
Смежные вопросы