| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Формат времени |
| Автор: kristina 7.4.2006, 16:17 |
| У меня есть в таблице данных поле datetime, с текущей датой, в которую заносится с помощью функции now(). Она в формате 0000-00-00 00:00:00. Как мне сделать так чтобы данные выводились в другом формате, например число-месяц-год ч:м Помогите пожалуйста! Я совсем не разбираюсь в mysql, буду ОЧЕНЬ признательна, если мне расскажут все в подробностях |
| Автор: Render 7.4.2006, 18:07 |
| Можно так, при помощи ф-ции DATE_FORMAT(); SELECT date, DATE_FORMAT(date, '%M %d, %Y') FROM `твоя таблица`; Форматирование дат: %Y-Четырех значный год. %y-Двухзначный год. %M-Полное название месяца. %b-Три первые буквы названия месяца. %m-Двух значный месяц года (01...12). %c-Месяц года (1...12). %d-Двух значный день месяца (01...31). %e-День месяца (1...31) %r-Время в 12 часовом формате %T-Время в 24 часовом формате %H-Двухзначный час %i-Двухзначная минута %s-Двухзначная секунда |
| Автор: kristina 10.4.2006, 12:02 |
| После запроса, табличку он мне выдал правильно, только вот в гостевой все равно формат времени старый. |
| Автор: Render 10.4.2006, 12:29 |
| какой формат нужен, и на чем собственно гостевая... Может дело даже не в базе? |
| Автор: kristina 10.4.2006, 12:49 |
| Гостевая на php Формат мне нужен примерно такой : 10.04.06 14:34 После такого запроса: SELECT datetime, DATE_FORMAT(datetime, '%M %d, %Y') FROM `book`; Появилась табличка 2006-04-05 17:15:00 April 05, 2006 2006-04-05 17:23:02 April 05, 2006 Но в самой гостевой формат времени не изменился, он остался таким же 2006-04-05 17:15:00 |
| Автор: Render 10.4.2006, 13:02 |
| Код PHP в студию... Кусок который выводит дату... |
| Автор: kristina 10.4.2006, 13:07 |
| Я просто печатаю переменную $out = ' <tr ><td width="30%" class="smtab" valign="top"><b>'.$datetime.'</b>'; Добавлено @ 13:09 Так я умаю дело не в этом, потому что дата в самой таблице не изменилась |
| Автор: Render 10.4.2006, 13:16 |
| Она и не должна изменится в таблице, ты просто формат вывода меняешь... А как там переменная $datetime формируется? |
| Автор: kristina 10.4.2006, 13:48 |
| в базу $datetime заносится с помощью функции now() |
| Автор: kristina 10.4.2006, 14:56 |
| вообще мне интересно, почему у меня не меняется формат при выводе даты в гостевой книге |
| Автор: Ignat 10.4.2006, 15:16 | ||||
Гм... Понял =)
А так? |
| Автор: kristina 10.4.2006, 16:01 |
| нет, все равно выдает прежний формат |
| Автор: Ignat 10.4.2006, 16:15 |
| Ну тогда во избежание перенапряжения наших мозгов при попытке телепатического просмотра кода, прошу запостить отрывок с обработкой результата запроса. Тему пермещаю в PHP. |
| Автор: kristina 10.4.2006, 16:28 |
| пжлста SELECT DATE_FORMAT(`datetime`, '%d %m %Y') AS `datetime` FROM `book`; SQL-запрос: SELECT DATE_FORMAT( `datetime` , '%d %m %Y' ) AS `datetime` FROM `book` LIMIT 0 , 30 datetime 10 04 2006 10 04 2006 10 04 2006 ---------------------------------------- SELECT datetime, DATE_FORMAT(datetime, '%M %d, %Y') FROM `book`; SQL-запрос: SELECT datetime, DATE_FORMAT( datetime, '%M %d, %Y' ) FROM `book` LIMIT 0 , 30 datetime DATE_FORMAT(datetime, '%M %d, %Y') 2006-04-05 17:15:00 April 05, 2006 2006-04-05 17:23:02 April 05, 2006 2006-04-06 16:50:12 April 06, 2006 |
| Автор: Ignat 10.4.2006, 16:33 |
| kristina, Я имел ввиду PHP-код |
| Автор: kristina 11.4.2006, 11:25 | ||||
вот этот?
Запрос к БД
|
| Автор: Render 11.4.2006, 11:42 | ||||
Попробуй так, у меня нормально отработал! На самом деле вот эту строку можно вообще убрать!
|
| Автор: kristina 11.4.2006, 12:13 |
| теперь вообще дат не пишет |
| Автор: kristina 11.4.2006, 12:46 |
| |
| Автор: Ignat 11.4.2006, 12:59 |
| Не "можно", а нужно! Это лишняя нагрузка на БД. |
| Автор: Render 11.4.2006, 12:59 |
| В чём фишка то была? |
| Автор: kristina 11.4.2006, 13:14 | ||
работает это
просто я дальше наисправляла, сейчас все ОК |
| Автор: Ignat 11.4.2006, 13:24 |
| kristina, еще не рекомендуется использовать конструкцию SELECT *, ... Т.е. вместо звездочки перечислять только те поля, которые нужны в выборке. |
| Автор: Render 11.4.2006, 13:39 |
| А не всё ли равно, у нее наверняка там всё поля и выбираются... |
| Автор: Ignat 11.4.2006, 13:47 |
| Даже если программисту все равно, то SQL - серверу нет. |
| Автор: kristina 11.4.2006, 13:58 |
| ок, спасибо, учту на будущие |
| Автор: kristina 14.4.2006, 15:35 | ||||
Я тут обратила внимание, что после изменения кода на
У меня перестали правильно сортироваться записи в гостевой книге До какого-то момента сортировка идет правильно, а потом сообщения начинаются вставляться не по порядку. Если поставить
то все сообщения сортируются по порядку |
| Автор: Ignat 17.4.2006, 15:30 |
| kristina, для начала избавьтесь от звездочки в запросе. Затем попробуйте разобраться по какому полю идет сортировка. Наводка: в данном запросе есть неоднозначность. Задача: отсортируйте по нужному полю, избавившись от неоднозначности. Если что-то станет непонятно, пишите. |
| Автор: Reptor 17.4.2006, 16:35 | ||
Не помню в какой но в какойто очень хорошой статье писали что наоборот лече использовать * |
| Автор: Ignat 17.4.2006, 17:01 | ||
Если в статье написано, что лучше использовать *, то я очень сомневаюсь, что эта статья очень хорошая. Точнее я уверен в обратном. |