Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Простое преобразование даты к виду `06 Октября 2012` http://forum.kohanaframework.su/viewtopic.php?f=38&t=400 |
Страница 1 из 2 |
Автор: | AmberLEX [ 06 окт 2012, 22:34 ] |
Заголовок сообщения: | Простое преобразование даты к виду `06 Октября 2012` |
Решение набросал по-быстрому, чтоб не заморачиваться В таблице есть поле `created` типа TIMESTAMP в виде `2012-10-06 18:58:56` Нужно вывести дату в виде `06 Октября 2012` Код:
Отображаем в шаблоне так Код:
|
Автор: | Sergey [ 08 окт 2012, 06:45 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Код:
А вообще, тут прослеживается закономерность, по этому по склонению можно написать алгоритм Но лучше такие вещи кешировать: Код:
|
Автор: | Sergey [ 08 окт 2012, 06:53 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Да и я бы не хранил в таблице дату в таком странном формате. Поле должно быть int, а заносить туда например time() |
Автор: | AmberLEX [ 08 окт 2012, 10:52 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Немного не точно. Не выйдет в статическом методе использовать this-> Тогда уже так (переделал и у себя) Код:
И я вообще обычно не использую is_null, а строгое равенство - так как-то нагляднее, да и выполняется наверное быстрее (хотя здесь роли это не играет). С TIMESTAMP я так и не очень понял, че-то я не вижу в базе количество секунд) — тип данных для хранения даты и времени. Данные хранятся в виде количества секунд, прошедших с начала «эпохи Юникса». Диапазон значений: 1970-01-01 00:00:00 — 2038-12-31 00:00:00. Занимает 4 байта. (http://lifeexample.ru/razrabotka-i-opti ... cript.html) Извините, с кешированием промашка небольшая вышла, подправил файл |
Автор: | Sergey [ 08 окт 2012, 16:17 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
посмотри возвращаемое значение ф-ции time() |
Автор: | AmberLEX [ 08 окт 2012, 17:29 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Ну в time() секунды, при чем здесь time? |
Автор: | Sergey [ 08 окт 2012, 22:12 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
а при том date('формат', time()). и при чём здесь секунды? |
Автор: | AmberLEX [ 09 окт 2012, 00:47 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
`date_created` timestamp NULL DEFAULT CURRENT_TIMESTAMP, `date_updated` timestamp NULL DEFAULT '0000-00-00 00:00:00', в базе находится '2012-06-06 03:25:57', '2012-06-30 06:25:13' TIMESTAMP — тип данных для хранения даты и времени. Данные хранятся в виде количества секунд, прошедших с начала «эпохи Юникса». Диапазон значений: 1970-01-01 00:00:00 — 2038-12-31 00:00:00. Занимает 4 байта. где секунды? echo $obj->date_created; 2012-06-06 03:25:57 SELECT unix_timestamp(YYYY-MM-DD HH:MM:SS); - тогда наверное получу секунды. Но хранится то вроде не в виде секунд Код:
$obj->updated_column = time(); $obj->save(); или $obj->updated_column = 20121349725879; $obj->save(); |
Автор: | Sergey [ 09 окт 2012, 01:04 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Код:
http://php.net/manual/ru/function.date.php |
Автор: | AmberLEX [ 09 окт 2012, 08:02 ] |
Заголовок сообщения: | Re: Простое преобразование даты к виду `06 Октября 2012` |
Я говорю про mysql, а не php Что делает date я прекрасно знаю Еще раз! TIMESTAMP — тип данных для хранения даты и времени. Данные хранятся в виде количества секунд, прошедших с начала «эпохи Юникса». Диапазон значений: 1970-01-01 00:00:00 — 2038-12-31 00:00:00. Занимает 4 байта. (http://lifeexample.ru/razrabotka-i-opti ... cript.html) С чего он взял, что данные хранятся в виде количества секунд? Все хранится в виде бинарного файла как я понимаю. Тут вопрос не в каком виде хранятся, а в коком виде отображаются (извлекаются) До mysql 5 формат был таким YYYYMMDDHHMMSS В mysql 5 формат такой: 'YYYY-MM-DD HH:MM:SS', в такй же как и DATETIME (выводятся 19 символов) Сколько это занимает байт, думаю, зависит от разрядности. Поэтому я с спрашивал: где секунды, если "данные хранятся в виде количества секунд"? Т.е. чтобы сохранить дату в TIMESTAMP нужно ее привести к виду 'YYYY-MM-DD HH:MM:SS' (например функцией date) Извлекается она тоже в таком виде. |
Страница 1 из 2 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |