Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Простое преобразование даты к виду `06 Октября 2012` http://forum.kohanaframework.su/viewtopic.php?f=38&t=400 |
Страница 2 из 2 |
Автор: | AmberLEX [ 09 окт 2012, 08:52 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Теперь как памятку для себя и других напишу TIMESTAMP удобен тем, что при операциях INSERT или UPDATE первое поле этого типа может автоматически обновляется до текущего значения. Т.е. если в структуре таблицы: Код:
- поле `updated` нужно будет обновлять самому Такое не прокатит: Код:
Если в структуре таблицы: Код:
Если мы будем извлекать дату из бд: Код:
Чтобы ее вывести в формате нужнном нам, делаем например так: Код:
> 09 10 2012 В PHP также удобно работать с UNIX_TIMESTAMP и чтобы извлечь дату в виде секунд нужно сделать так: Код:
Код:
> 09 10 2012 Теперь, что касается Kohana Т.е. если в структуре таблицы: Код:
Код:
Если в структуре таблицы: Код:
Код:
Получим из БД мы тоже их в формате 'YYYY-MM-DD HH:MM:SS' и приведем их к нужному виду с помощью класса DateTime(), например так: Код:
Еще мы можем хранить дату в секундах в поле типа int Код:
Код:
Получим из БД мы тоже их в виде секунд и приведем их к нужному виду с помощбю функции PHP date(), например так: Код:
Блин, тут целая статья получается, ну его нафиг все...)) |
Автор: | Sergey [ 09 окт 2012, 17:29 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Цитата: Я говорю про mysql, а не php Что делает date я прекрасно знаю Мы говорим на разных языках? Я говорю, что зачем всё это, когда можно сделать в БД это поле типом int. И хранить там значения типа 1305488194 (например). Это же просто. И читать такой формат, и показывать на странице через функцию date(), и записывать в БД. Всё, больше я ничего не имел ввиду )) |
Автор: | AmberLEX [ 09 окт 2012, 19:27 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Поэтому я и написал развернутый ответ) |
Автор: | mamahtehok [ 09 окт 2012, 23:12 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
AmberLEX писал(а): Теперь как памятку для себя и других напишу ....... Блин, тут целая статья получается, ну его нафиг все...)) отлично получилось!!! Спасибо! |
Автор: | AmberLEX [ 10 окт 2012, 12:00 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Цитата: отлично получилось!!! Спасибо! Всегда пожалуйста. Сам не ожидал, что такой объем выйдет. Можно и подробнее было написать, но тогда это на статью для блога больше потянет, а не для форума) Цитата: Я говорю, что зачем всё это, когда можно сделать в БД это поле типом int. Даже не знаю, что удобнее. Так в БД смотришь - видно дату сразу, а не секунды и понятно. А если использовать какой-то продвинутый MySQL менеджер, там вообще календарик вываливается и можно выставить дату.Т.к. на странице максимум 100 записей отображается, а обычно 10-25 с датой, не думаю, что использование Код:
Нужно как-то преимущества и недостатки каждого из способов хранения описать. Например, если месяц не нужно отображать на русском, то можно вообще использовать DATE_FORMAT MySQL и сделать так (с int так не сделаешь) Код:
В шаблоне написать так Код:
Код:
ORM вариант: Код:
Код:
|
Автор: | Sergey [ 10 окт 2012, 13:47 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
> Например, если месяц не нужно отображать на русском, то можно вообще использовать DATE_FORMAT MySQL и сделать так (с int так не сделаешь) А зачем? SELECT date FROM и всё ) Ладно, у каждого свои методы |
Автор: | AmberLEX [ 10 окт 2012, 15:53 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
> А зачем? Тогда он получит дату в полном формате YYYY-MM-DD HH:MM:SS и нужно будет еще в php при выводе писать date('d m Y', $obj->date), а так он сразу выберет нужный формат. Ну это я для информации написал про DATE_FORMAT. Хотя так делать в ORM - помойму извращение) Если строить запросы не через ORM, а так: DB::query(Database::SELECT, $sql)->as_object()->execute(); почему бы тогда не форматировать дату при выборке, если нужно? Ну в общем есть такая возможность) |
Автор: | Sergey [ 10 окт 2012, 16:05 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Есть у меня такой хелпер... Код:
Так вот, например в админке, когда нужно показать дату создания или изменения страницы, просто пишу: Код:
Естественно в $page->created и $page->modified хранятся даты типа 1304978011 |
Автор: | Sergey [ 12 окт 2012, 07:59 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Sergey писал(а): Есть у меня такой хелпер... Теперь у меня есть вот такой хелпер: viewtopic.php?f=38&t=409 |
Страница 2 из 2 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |