Все мы знаем, что в таблице БД MySQL дата храниться по умолчанию в формате YYYY-MM-DD, тип данных DATE, где
YYYY – год (четырехзначный формат)
MM – месяц (двухзначный формат)
DD – день (двухзначный формат)
При выводе данных на страничку такой формат не очень удобен восприятию. Наиболее удобным считается формат вывода даты в виде: DD.MM.YYYY.
Как это реализовать, если в самой таблице дата храниться в другом порядке следования цифр? Да очень просто!
Для наглядности, приведу пример как сделать запрос на извлечение заметок на сайте, в которых нужно вывести дату добавления заметки в формате DD.MM.YYYY
$result = mysql_query("SELECT id,cat,title,description,DATE_FORMAT(date,'%d.%m.%Y') AS date,author,mini_img,view,rating, q_vote FROM data WHERE cat='$cat' ORDER BY date DESC LIMIT $start, $num",$db);
Из приведенного выше запроса, видно, что для преобразования формата нам потребовалось записать извлекаемое поле даты в таком формате: DATE_FORMAT(date,’%d.%m.%Y’) AS date
То есть, для преобразования в соответствующий формат нам понадобилась внутренняя функция mysql DATE_FORMAT для форматного вывода даты. Первым аргументом в ней указывается поле date, а вторым – в кавычках сама строка с символами обозначений, которые разделены между собой знаком “%” и точкой. После записи этого выражения обязательно должно идти “AS date” это означает, что такое преобразование будет сделано именно для поля “date” в таблице.
И теперь в извлеченном массиве $myrow[«date»], хранящем дату заметки будет у нас уже будет храниться дата в нужном нам формате.
Аналогичным образом сделаете преобразование даты в запросах на извлечение комментарив на вашем сайте, с одной лишь разницей, что если ваша дата добавления комментария храниться в формате DATETIME, т.е. дата+время, то формат поля даты в запросе будет такой:
DATE_FORMAT(date,'%d.%m.%Y %h:%i:%s') AS date
В качестве справки к этому уроку приведу подробный анализ строковых параметров php-функции даты date()
date() Возвращает строку, отформатированную в соответствии со строкой формата. В строке формата распознаются следующие символы: a - "am" или "pm" A - "AM" или "PM" B - время Swatch Internet d - день (число) месяца, 2 цифры с ведущим нулём, если необходимо; т. е. от "01" до "31" D - день недели, буквенный, 3 буквы; например, "Fri" F - месяц, буквенный, long; например, "January" g - час, 12-часовой формат без ведущих нулей; т.е. от "1" до "12" G - час, 24-часовой формат без ведущих нулей; т.е. от "0" до "23" h - час, 12-часовой формат; т.е. от "01" до "12" H - час, 24-часовой формат; т.е. от "00" до "23" i - минуты; т.е. от "00" до "59" I (заглавная i) - "1", если Daylight Savings Time, "0" - в противном случае. j - день (число) месяца без ведущих нулей; т.е. от "1" до "31" l ('L' в нижнем регистре) - день недели, буквенный, long; например, "Friday" L - boolean, указывающее, високосный ли год; т.е. "0" или "1" m - месяц; т.е. от "01" до "12" M - месяц, буквенный, 3 буквы; например, "Jan" n - месяц без ведущих нулей; т.е. от "1" до "12" O - Разница с временем по Гринвичу, в часах; например, "+0200" r - RFC 822 формат даты; например, "Thu, 21 Dec 2000 16:01:07 +0200" (введён в PHP 4.0.4) s - секунды; т.е. от "00" до "59" S - простой английский суффикс для дня (числа) месяца, 2 символа; т.е. "st", "nd", "rd" или "th" t - количество дней в данном месяце; т.е. от "28" до "31" T - установка Timezone/Часовой пояс на данной машине; например, "EST" или "MDT" U - секунды эпохи Unix Epoch (начиная с January 1 1970 00:00:00 GMT) w - день недели, числовой, т.е. от "0" (Sunday) до "6" (Saturday) W - ISO-8601 номер недели в году, недели начинаются с понедельника/Monday (введено в PHP 4.1.0) Y - год, 4 цифры; например, "1999" y - год, 2 цифры; например, "99" z - день года; т.е. от "0" до "365" Z - смещение часового пояса, в секундах (т.е. от "-43200" до "43200"). Смещение часовых поясов к западу от UTC всегда отрицательное, а для поясов в востоку от UTC - всегда положительное.
я уже это всё где-то видела