Дата PHP () формат при вставке в дату и время в MySQL

Что правильный формат должен передать date() функция в PHP, если я хочу вставить результат в MySQL datetime ввести столбец?

Я пробовал date("Y-M-D G:i:s") но это просто вставляет "0000-00-00 0:00:00" каждый раз.

298
задан Mifeet 3 May 2016 в 03:00
поделиться

3 ответа

Проблема в том, что вы используете 'M' и 'D' , которые являются текстовыми представлениями, MySQL ожидает числовое представление формата 2010 -02-06 19:30:13

Попробуйте: date ("Ymd H: i: s") , в котором используются числовые эквиваленты.

править: переключено G на H , хотя это может не повлиять на результат, вы, вероятно, захотите использовать 24-часовой формат с ведущими нулями.

640
ответ дан 23 November 2019 в 01:29
поделиться

Вот альтернативное решение: если вы иметь дату в PHP в качестве метки времени, не обрабатывать ее с помощью PHP и позволить БД позаботиться о ее преобразовании с помощью функции FROM_UNIXTIME .

mysql> insert into a_table values(FROM_UNIXTIME(1231634282));
Query OK, 1 row affected (0.00 sec)

mysql> select * from a_table;

+---------------------+
| a_date              |
+---------------------+
| 2009-01-10 18:38:02 |
+---------------------+
40
ответ дан 23 November 2019 в 01:29
поделиться

Из комментариев на странице руководства php date () :

<?php $mysqltime = date ("Y-m-d H:i:s", $phptime); ?>

Вы правильно ответили «Y» - это полный год, но «M» - это месяц из трех символов, а «m» - месяц из двух цифр. Та же проблема с буквой D вместо d. «G» - это час, состоящий из 1 или 2 цифр, где «H» всегда начинается с 0, когда это необходимо.

103
ответ дан 23 November 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: