+7(982) 597-7179

PHP формат ввода данных из базы

Все мы знаем, что в таблице БД 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 - всегда положительное.

Приглашаем поучавствовать в обсуждении статьи:

Комментариев 1
  • JeffreyLom ⋅ 2 года назад

    я уже это всё где-то видела

    Ответить

Войти с помощью: