2015-09-10 3 views
0

мне нужно вставить текущую дату в следующем формате в столбце TIMESTAMP в БД MySQL: d-m-YВставить дату в определенном формате в БД MySQL

В настоящее время я использую SQL NOW(), который возвращает дату, Y-m-d. Поскольку я использую AJAX для отображения данных, я не могу отформатировать возвращаемый результат, используя $date_returned->format(d-m-Y). Поэтому мне нужно вставить дату в формате, который я покажу на моем вызове AJAX.

Я попытался вставить дату, используя следующие функции:

1) date('d-m-Y');  
2) (new \DateTime())->format('Y-m-d'); 

Я понимаю, эти две функции делают довольно много то же самое, но я не был уверен, что еще я должен попробовать.

MySQL бросил следующую ошибку для обоих дат:

Error : (1292) Incorrect datetime value: '-2014' for column 'msg_date' at row 1 

Я предполагаю, что это должно быть легко исправить, но я не могу понять, что это неправильно. Я пробовал оба TIMESTAMP и DATETIME на конце MySQL, но не работал. (Мне нужно, чтобы это было TIMESTAMP).

Любые предложения приветствуются!

+0

'date ('Y-m-d', strtotime (yourdate))'? – aldrin27

+0

Показать ваш запрос после того, как переменные PHP были интерполированы. –

+0

хранить его как варчар ... – cameronjonesweb

ответ

1
$newdate= date('Y-m-d', strtotime('10-09-2015'));

или если вы хотите текущее время просто использовать

$now = date('Y-m-d');
1

Если структура msg_date столбца является DATETIME или TIMESTAMP, формат даты должен быть:

YYYY-MM-DD HH:MM:SS 

, которые могут быть отформатированы с помощью PHP следующим образом:

$date = date("Y-m-d H:i:s"); 

Или, если у вас уже есть дата, и вы хотите конвертировать в этот формат, мы можем использовать strtotime():

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

Для более формата даты, проверьте этот link.

1

Сообщение об ошибке MySQL показало, что формат даты был неправильным.

год должен идти первым, потом месяц, потом день, как в:

date('Y-m-d') // right 

В первом примере, у вас есть

date('d-m-Y') // wrong 

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

Следует отметить, что в столбце MySQL TIMESTAMP хранятся дата и время. Допустим, MySQL дает только дату (MySQL просто оставит время в ноль), но если вам не нужно хранить время, вы можете также сделать столбец DATE вместо TIMESTAMP.

Если вы хотите отображать даты как d-m-Y, тогда непременно сделайте так, но их необходимо отправить в MySQL как Y-m-d.

Смежные вопросы