К списку форумов К списку вопросов
А как сделать чтобы было: день-месяц-год
vavaha
06.05.2004 - 22:26
В phpMyAdmin 2.3.0 выбираю для одного из полей Тип поля "date".
После этого по умолчанию 0000-00-00 (год-месяц-день).
А как сделать чтобы было: день-месяц-год (00-00-0000)?
Спасибо.
Zeratul
1 - 06.05.2004 - 22:42
to vavaha: предлагаю тебе пойти несколько другим путем.
Я храню в БД дату в формате int - количество секунд, прошедших с 1 января 1970 года.
Команда date в PHP работает именно с этим форматом. Легко конвертируется в ЛБОЙ нужный формат, точность до секунды и вполне логичное упорядочивание.
Рекомендую.
Triton5
2 - 06.05.2004 - 22:49
Зератул дело говорит)
хотя этот дебильный списоб хранить дату в секундах, что бы там ни говорили, исключительно плох:) юниксы, так их заногу:)
Deflorator
3 - 06.05.2004 - 23:16
1 прав. хотя, проблема неудобства "ручного" просмотра БД налицо - ненаглядно. в то же время, масса удобств, напрмер, в поределении что было раньше, что позже - просто сравни число секунд.
nd
4 - 06.05.2004 - 23:37
хранение даты в yyyy-mm-dd hh:mm:ss тоже позволяет обойтись одним строковым сравнением
Mexoc
5 - 06.05.2004 - 23:43
Triton5, почему это он дебильный?
Deflorator
6 - 07.05.2004 - 00:21
nd, так то оно так, но сколько ресурсов сожрет скрипт на строковое сравнение, если записей неслабая кучка. подскажу: в несколько раз больше, чем в случае с числами.
nd
7 - 07.05.2004 - 01:27
большое спасибо, что подсказал
просто огромное
AI
8 - 07.05.2004 - 08:06
мускул предоставляет кучу чудных агрегарных функций для работы с датой. то бишь не обязятально хранить дату в секундах. можно и как он сам просто если надо к примеру секунды делаешь так: <br>
UNIX_TIMESTAMP(поле_с_датой_типом_datetime);
например добавить месяц к дате
UNIX_TIMESTAMP(DATE_SUB(NOW(),interval 1 MONTH )
то есть всё можно днелать средствами мускула и выдавать результат так как надо не обращаяс после к средствам PHP для преобразований.
Zeratul
9 - 07.05.2004 - 10:25
to AI: отучайся чесать левой ногой правое ухо :) В смарти та же беда - они предлагают средствами шаблонизатора форматировать строки. И вообще: тебе не лень учить новые функции которые втупую дублируют имеющиеся в том же ПХП средства. Имхо, это интересно только в сексе :)
А по поводу скорости: я таки не понял - нормальный программер в день отбивает работодателю разницу между нормальным и мощным процом... Намек ясен?
AI
10 - 07.05.2004 - 11:15
последний момент часто удобен если надо писать хранимые процедуры. конечно не в мускуле :-) когда процедура уже возращает окончательный результат. И в принципе мне часто в мускуле возращать так как надо сразу а не переделывать помто функциями PHP. Я не хочу сказать что то против . но мне так почему удобней зачастую даже в MySQL.
Zeratul
11 - 07.05.2004 - 11:51
Хранимые процедуры - базару нет. Тут встроенные возможности СУБД рулят.
vavaha
12 - 08.05.2004 - 23:35
И еще - как бы сделать, чтобы пользаватель вводил дату в таком виде /день-месяц-год/
Спасибо
vavaha
13 - 10.05.2004 - 19:49
Как сравнить две даты:
первая - хранится в БД тип DATE
вторая - текущая дата
DIVЕR
14 - 10.05.2004 - 20:02
Преобразуешь одно в другое и сравниваешь =))))
Либо текущую в гггг-мм-дд и сравниваешь построчно, либо делаешь strtoint для даты из БД и сравниваешь числа.
Второе предпочтительнее, но для этого лучше средствами SQL-сервера (в самом запросе) преобразовать дату в timestamp и потом уже сравнивать числа.
vavaha
15 - 11.05.2004 - 17:21
До тусовки осталось ... дней!
Как бы это еще можно сделать?
Если можно подробно!
Спасибо.
vavaha
16 - 11.05.2004 - 17:29
Zeratul, а как пользователь будет вводить дату (в каком виде)?
vbirf
17 - 11.05.2004 - 23:04
посекндно как в посте номер 1 конечная дата минус текущая потом делишь на 60 получаешь минут делишь еще на 60 получаешь часы и тд
Mips
18 - 12.05.2004 - 21:40
round(($нужная_дата-time())/(60*60*24))
а вводить... да как угодно, какую форму и обработчик ввода сделаешь, такая и будет. Можно например вводить как "14 September 2004", а потом через strtotime() преобразовать в цифру. Главное проверять через checkdate().
А вообще, функция strtotime очень удобна для календарных вычислений, например, чтобы вывести новости за последний день, неделю, месяц, год. Ну и про mktime забывать не надо.
ps: UNIX-формат даты мне тоже приглянулся, быстро и удобно. Использую везде.
pss: Кстати, через 35 лет сие работать не будет, вернее будет работать неправильно. Хотя, изобретут поди чё-нить новое к тому времени :)
psss: Два с половиной года назад мы пережили миллиардную секунду данного формата. Ох и нажрался же я тогда, 9 сентября было :)
DIVЕR
19 - 12.05.2004 - 22:06
date( 'r', 2 в 30 степени ) => Sat, 10 Jan 2004 16:37:04 +0300
=))))
совсем недавно было, об этом ещё на мазе написали %)
 
ps надо прибавлять букву p, а не s =)

К списку вопросов на форуме Веб-дизайн

>>