mysql — строка преобразования php в дату и время & quot; 21 декабря 2012 г. — 15:45 & quot;

Я использую загрузчик даты начальной загрузки, чтобы выбрать дату и время. это дает мне выход
«21 декабря 2012 — 15:45». Теперь я хочу сохранить его в базе данных MySQL. Моя проблема в том, как сохранить эту строку в столбце данных MySQL (тип данных = дата и время).

здесь я использую этот код, но он не работает

$s = '21 December 2012 - 03:45 PM';

$date = strtotime($s);
echo date('d/M/Y:H:i:s', $date);

Я хочу сохранить эту строку в базе данных MySQL в формате даты и времени. извлечь ту же строку при выполнении SQL-запроса

благодарю вас

-1

Решение

Если ваш формат входной строки из этого средства выбора даты имеет такой вид:

21 December 2012 - 03:45 PM

Вам необходимо сначала преобразовать формат, который подходит для вашего DATETIME поле, которое является:

YYYY-MM-DD HH:MM:SS

Тип DATETIME используется для значений, которые содержат как дату, так и время. MySQL извлекает и отображает значения DATETIME в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС».

Ref: http://dev.mysql.com/doc/refman/5.1/en/datetime.html

Из PHP вы можете использовать DateTime учебный класс. Укажите формат, который у вас есть в вашем указателе даты:

$s = '21 December 2012 - 03:45 PM'; // input from date picker
$date = DateTime::createFromFormat('d F Y - G:i a', $s);
$insert_date = $date->format('Y-m-d H:i:s');
echo $insert_date;
// rest of your mysql insertion codes
1

Другие решения

Попробуйте это для записи в MySQL:

$mysqldate = date( 'Y-m-d H:i:s', $date )
0

Вам лучше использовать значения эпох, а не читаемые человеком даты. Делайте все свои вещи, используя значения эпохи UTC, и конвертируйте их в удобочитаемые строки только тогда, когда вам нужно показать дату пользователю (добавить локаль и т. Д. И т. Д.).

0

MySQL ожидает, что поля DateTime будут переданы ему для хранения в этом формате

YYYY-MM-DD HH:MM:SS

Поэтому измените это утверждение на

echo date('Y-m-d H:i:s', $date);

И, конечно, вы должны заключить эту строку в кавычки в SQL-выражении, как это

$s = '21 December 2012 - 03:45 PM';

$a_date = date('Y-m-d H:i:s', strtotime($s));

$sql = "INSERT INTO table (the_date) VALUES ('$a_date')";
0

когда вы делаете strtotime($s);
так что по вашему мнению вы можете <?php echo date('Y-m-d H:i:s',$row['date']) ?>

0
По вопросам рекламы [email protected]