Изменить форматирование метки времени UNIX на базу данных

#php #date-format #unix-timestamp

#php #дата-формат #unix-временная метка

Вопрос:

Я завершаю учебное пособие, которое можно найти здесь …http: //www.elated.com/articles/cms-in-an-afternoon-php-mysql/

У меня возникли проблемы с получением правильного формата даты в базе данных. Я успешно добавил календарь пользовательского интерфейса jQuery с форматом dateformat: «yy-mm-dd», но я хочу добавить дату в формате «dd-mm-yy»

Временная метка UNIX всегда, кажется, ставит год первым, например. 2010-04-03

Это строка кода из моего PHP, извлекающая дату…

 $sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles ORDER BY " . mysql_escape_string($order) . " LIMIT :numRows";
  

Это добавление даты, которая является важной частью, поскольку большинство пользователей лучше поймут формат dd-mm-yy…

  $sql = "INSERT INTO articles ( publicationDate, title, summary, content ) VALUES (FROM_UNIXTIME(:publicationDate), :title, :summary, :content )";
  

Любая помощь с благодарностью, поскольку я в недоумении, даже после прочтения части руководства по PHP.

Большое спасибо, CD

Ответ №1:

Это не временная метка unix. Это обычное поле даты / времени в формате MySQL. Временная метка Unix — это просто количество секунд, прошедших с 1 января 1970 года, и она не похожа на форматированную дату. например

 '2011-10-31 15:01:00' in mysql is 1320094860 in timestamp format
  

Если вы хотите изменить формат, в котором дата выводится из MySQL, вы можете использовать DATE_FORMAT() функцию

Комментарии:

1. Итак, я должен удалить функцию UNIX_TIMESTAMP() и заменить на DATE_FORMAT(дата, формат)?

2. зависит от того, для чего вы будете использовать значение. Передавая дату базы данных в средство выбора даты JS, вам понадобится unix_timestamp, но для отображения «красивой» строки пользователю вам понадобится DATE_FORMAT .

Ответ №2:

Если проблема в том, что вместо DD-MM-YY хранится YY-MM-DD, почему бы не отменить это?

 list($yy, $mm, $dd) = explode("-", $datestring);
$ddmmyy = "$dd-$mm-$yy";
  

Комментарии:

1. Спасибо. Теперь я использую list ( $ d, $ m, $ y) = $publicationDate;