Примечание: $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 года, следовательно логичнее будет писать ДД.ММ.ГГГГ (по убыванию)
Спустя 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"); |