[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удобный формат вывода DATETIME
samb100
Есть код:

PHP
$result mysql_query ("SELECT * FROM table");

$myrow mysql_fetch_array ($result); 

do {     
printf ("%s - %s"$myrow["name"], $myrow["date"]);                     
}
while (
$myrow mysql_fetch_array ($result));


Примечание: $myrow["date"] - тип поля "DATETIME" в PhpMyAdmin


на экране выводится:
"Название - 2009-12-13 04:14:17"


Нужно, чтобы выводилось так:
"Название - 13.12.2009, 09:14"
т.е. дату в более читабельный формат.

P.S. date() и strftime() не подходят, т.к. нужно дату брать из БД.

----

text/plain: dateformat в PhpMyAdmin изменил, все нормально,
но на страницу данные не вытаскиваются в новом формате,
а отображаются в старом формате.

Как быть?



Спустя 1 час, 20 минут, 30 секунд (13.06.2009 - 05:27) kirik написал(а):
1. Сначала strtotime(), потом strftime()
2. Если php >=5.1, есть strptime()
3. Форматировать дату в запросе через DATE_FORMAT().

Спустя 4 часа, 45 минут, 27 секунд (13.06.2009 - 10:13) twin написал(а):
Не нужно здесь do...

Кстати, о "читабельном" формате. 05.06.2009 - это какое число по твоему?

Спустя 14 часов, 48 минут, 10 секунд (14.06.2009 - 01:01) samb100 написал(а):
05.06.2009 - это 5 июня 2009 года, что-то не так?

Спустя 30 минут, 27 секунд (14.06.2009 - 01:31) twin написал(а):
А вот в Америке считают, что это 6-е мая. Вообще самый рациональный и удобный формат - азиатский. На него постепенно переходит весь прогрессивный тырнет. Он и используется в БД. То есть там не запутаешься, все логично по убыванию. год-месяц-день. А ты переворачиваешь все с ног на голову и считаешь что это
Цитата
более читабельный формат.
Какой же он более читабельный, если не понятно что там где?

Спустя 12 минут, 32 секунды (14.06.2009 - 01:44) kirik написал(а):
Цитата (twin @ 13.06.2009 - 17:31)
А вот в Америке считают, что это 6-е мая.

Вот уроды.

Цитата (twin @ 13.06.2009 - 17:31)
То есть там не запутаешься, все логично по убыванию. год-месяц-день.

Ведь мы пишем 23 января 1997 года, следовательно логичнее будет писать ДД.ММ.ГГГГ (по убыванию) smile.gif

Спустя 2 минуты, 28 секунд (14.06.2009 - 01:46) twin написал(а):
Ну если бы уроды не считали бы как попало, то было бы логично. А раз возможна путаница, то логичен все таки азиатский подход. По убыванию ни где не переставляют месяц с числом.
Впрочем логично, это еще не значит рационально. Просто нас так приучили и это кажется правильным. А на самом деле азиатский подход более рационален (как и многое у них). Искать проще от крупного к мелкому. Мы же сначала открываем кашелку, потом сумочку, а потом кошелек, а не наоборот...

Спустя 13 часов, 4 минуты, 53 секунды (14.06.2009 - 14:51) FatCat написал(а):
Цитата (kirik @ 14.06.2009 - 02:44)
Ведь мы пишем 23 января 1997 года

Еще в старорусском были обороты "января двадцать третьего дня случилась метель".

ИМХО, по-хорошему надо месяц слово мыводить.

Спустя 17 часов, 31 минута, 46 секунд (15.06.2009 - 08:23) glock18 написал(а):
Цитата (FatCat @ 14.06.2009 - 11:51)
ИМХО, по-хорошему надо месяц слово мыводить.
Действительно, это избавило бы от неоднозначности записи даты.


Цитата (twin @ 13.06.2009 - 22:46)
А на самом деле азиатский подход более рационален
Согласен полностью.

Спустя 2 часа, 35 минут, 17 секунд (15.06.2009 - 10:58) sergeiss написал(а):
Во-первых, при выборке данных из БД надо использовать цикл вида
PHP
while ($myrow mysql_fetch_array ($result))
{
  
// тут выполняешь действия
}


А во-вторых, для переформатирования даты-времени можно использовать объект типа DateTime. Это будет более универсально, чем DATE_FORMAT, т.е. этот объект не привязан к определеному виду БД.
Типа такого что-то будет (внутри твоего цикла):
PHP
$date_str=new DateTime($myrow['date']);
echo 
$date_str->format( .... ); // а тут выбираешь любой формат, нужный тебе - синтатсис тот же, что у функции date()

С полученной датой (в объекти типа DateTime) можно также проводить манипуляции типа увеличения, например, на несколько часов (минут, секунд, дней, месяцев...). И это будет сделано с учетом количества дней в конкретном месяце, перехода на летнее/зимнее время и т.д.
Делается это просто:
PHP
echo $date_str->modify("+1 day 2 hours");
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.