Как отформатировать дату в PHP и SQL? - PullRequest
2 голосов
/ 24 сентября 2011

У меня есть поле в одной из моих таблиц, которое называется "publishingDate", и его тип данных date.Однако, когда я делаю запрос, который должен показать сегодняшнюю дату, у меня возникает проблема с тем, как ее отформатировать.Это всегда показывает 0000-00-00.

Это моя переменная:

$today = date("F j, Y, g:i a");

Это мой запрос:

$query = "INSERT INTO articles (summary, publicationDate) VALUES ('{$content}', '{$today}')";

Что я делаю не так?

Ответы [ 5 ]

5 голосов
/ 24 сентября 2011

Попробуйте это:

$today = date("Y-m-d"); 
// 2011-09-24

Ваша строка возвращает:

$today = date("F j, Y, g:i a");
// September 24, 2011, 6:39 am

Edit:

Чтобы сохранить дату и время, вы можете использовать дату и время:

$today = time(); // timestamp

Измените поле вашей базы данных на отметку времени.

или

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

Измените поле вашей базы данных на datetime.


Выбрать ваши данные из базы данных вы можете по этому адресу:

$result = mysql_query("SELECT date FROM table");
$row = mysql_fetch_array($result);

// field is timestamp
echo date("F j, Y, g:i a", $row['date']);
// or
// field is datetime
echo date("F j, Y, g:i a", strtotime($row['date']));

Больше информации здесь: http://at.php.net/manual/en/function.date.php

2 голосов
/ 24 сентября 2011

Если столбец publicationDate имеет тип DATE (который действительно должен быть), вам нужно отформатировать дату в , один из форматов, который MySql распознает , а не читаемая человеком строка. 1005 *

Из них наиболее распространенными являются date("Ymd") или date("Y-m-d"), если вам нравятся дефисы.

2 голосов
/ 24 сентября 2011
$today = date("Y-m-d");

Это правильный формат для вставки в MySQL.

1 голос
/ 24 сентября 2011

Значение должно быть строкой, отформатированной в формате MySQL: Ymd.

1 голос
/ 24 сентября 2011

Используйте это вместо

$today = date("Y-m-d");

Дата MySQL хранит только дату, а не время, как ГГГГ-ММ-ДД

Если вы также хотите сохранить время, вы можете использовать поле DATETIME, которое выглядит так: ГГГГ-ММ-ДД ЧЧ: ММ: СС, или вы можете сохранить метку времени в виде строки.

...