-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в community_coding

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 29.12.2004
Записей:
Комментариев:
Написано: 536


php vs мозг

Вторник, 03 Октября 2006 г. 18:23 + в цитатник
Aeron_Dae все записи автора Надо произвести сравнение текущей даты - (минус) 10 дней и даты, из БД...

Теоретически, это выглядит так:
code:

if ($n['date'] >= date("d.m.y", mktime(0,0,0,date("m"),date("d")-10,date("y"))))


где $n['date'] - БД преобразованная в ассоциативный массив, и поле даты соответственно...

Дата везде формата дд.мм.гг

Записать данность можно впринципе по разному, но смысл один и тот же...

Суть проблемы:
Сравнивает только дни... месяцы и года для него не важны, как исправить?
Рубрики:  вопросы
web-кодинг

непобедимый   обратиться по имени Вторник, 03 Октября 2006 г. 18:31 (ссылка)
В лоб и по твоим условиям можно так

code:
$a = split('.',$n['date']);
$db_date = mktime(0,0,0,$a[1],$a[0],$a[2]);
if ($db_date >= mktime(0,0,0,date("m"),date("d")-10,date("y")))
Ответить С цитатой В цитатник
Bagdad   обратиться по имени Вторник, 03 Октября 2006 г. 18:43 (ссылка)
Угу, он сравнивает строку. можно вынести вперед год:
if($n['date'] >= date("y.m.d", mktime(0,0,0,date("m"),date("d")-10,date("y"))))
Должно работать.
Ответить С цитатой В цитатник
Bagdad   обратиться по имени Вторник, 03 Октября 2006 г. 18:48 (ссылка)
Чуть не забыл ) Данные в $n['date'] тоже надо представить в гг.мм.дд
Ответить С цитатой В цитатник
Aeron_Dae   обратиться по имени Вторник, 03 Октября 2006 г. 19:10 (ссылка)
Аналогичная, вашим решениям, запись:
code:

$dtn = explode('.', $n['date']);
if (date("d.m.y", mktime(0,0,0,$dtn[1],$dtn[0],$dtn[2])) >= date("d.m.y", mktime(0,0,0,date("m"),date("d")-10,date("y"))))



Вроде всё ок... И пашет, но почему-то 30.03.06 вполне отвечает требованиям, так же, как и 27.09.06
Вообщем проблема не решена...
Ответить С цитатой В цитатник
непобедимый   обратиться по имени Вторник, 03 Октября 2006 г. 19:28 (ссылка)
Aeron_Dae, да, вышло не влоб, но по лбу ;) Во-первых date("d")-10 же может отрицательное число дать, особенно в начале октября ;) Во-вторых ты усложнил логику, хотя код и будет рабочий. Зачем снова приводить к date("d.m.y", ...) - это лишняя работа ПХП-е?
Делай лучше так:
code:
$dtn = explode('.', $n['date']);
if (mktime(0,0,0,$dtn[1],$dtn[0],$dtn[2]) >= strtotime('-10 day 00:00'))
Ответить С цитатой В цитатник
Aeron_Dae   обратиться по имени Вторник, 03 Октября 2006 г. 19:51 (ссылка)
Вооо!!! Спасибо...
Меня-то strtotime смущал тем, что там только определенные форматы даты есть...
Хотел его сравнить все время с date на основе mktime, а всё оказалось просто...
Бесформатное сравнение...

Спасиб, ты рулишь!
Ответить С цитатой В цитатник
ToSHiC   обратиться по имени Вторник, 03 Октября 2006 г. 22:35 (ссылка)
можно вообще внутри бд сравнить :)
Ответить С цитатой В цитатник
Комментировать К дневнику Страницы: [1] [Новые]
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку