![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Пишу для сайта сервис афиши. Когда админ будет вводить туда новое событие, он будет писать в графе "Дата" дату в виде текста. Например, "15 ноября".
Подскажите, как можно умудриться сравнить такую дату с датой, полученной функцией date? Мне это нужно, чтобы в отдельном месте сайта показывать ближайшее событие из афиши, и при этом игнорировать уже прошедшие события (без удаления их). Причем, нужно учитывать, что событие "2 января" должно быть позже "15 ноября", хотя если их тупо сравнить, то получится наоборот. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
А если+ его заставить выбирать день и месяц в выпадающих списках или чем-нить типа DataPicker - то не в виде текста. А не надо их сравнивать ТУПО. Тупость - качество, несовместимое с созданием нормальной программы. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| begin |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 415 Регистрация: 16.5.2007 Репутация: нет Всего: нет |
Дату нужно оставить именно в таком формате - она так выводится в списке афиш..
Я и не хочу делать тупо, поэтому и советуюсь здесь Подозреваю, тут не будет легкого решения.. Проще наверно заставить админа удалять просроченные афиши, и выводить как ближайшую, ту что первая с начала по id. Правда, если придется добавить событие с датой между уже существующими, то все эта идиллия рухнет Может все таки есть какой нибудь способ? Ну например, как-то распарсить эту дату, перевести ее в формат функции date и тогда уже сравнивать? Правда, как это реализовать в виде конкретного кода, я пока не представляю |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
Ну и форматируй при выводе. Я тоже... впрочем, его можно облегчить - почитав хоть что-нить о принципах хранения данных. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 19 Всего: 25 |
Ну надо хоть какую-то последовательность и договоренность при вводе соблюсти, тогда задача решаема, в противном случае - бардак. Пусть администратор выводит все даты в формате типа 12 декабря 2007.
Тогда эту дату можно обработать следующим образом:
На счет корректности ABS(DATE_SUB(date_add, '. $time . ')) не уверен на 100%, но суть её в том, чтобы вычислить разницу между твоей датой и датами статей и отселектировать одну(или несколько) статей по возрастанию этого промежутка между датами, т.е. первыми выведутся самые ближайшие, а их кол-во ограничивается конструкцией LIMIT. Это сообщение отредактировал(а) flashaa - 30.10.2007, 10:11 |
|||
|
||||
| Glip |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: 7 Всего: 18 |
можно еще посмотреть на strtotime()
а хранить и сравнивать действительно лучше или в timestamp или в виде предусмотреном субд для хранения даты |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
Оператор - существо, как правило, безграмотное. Так что будут не только опечатки. И ввод даты свободным текстом - это поиск дополнительных приключений на определенную часть тела.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |