Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Нужно проверить входит ли дата в диапазон дат


Автор: Igor_K 26.9.2008, 19:31
Добрый вечер!

У меня есть диапазон дат. Например 18.5.2003 и 24.7.2008. И еще есть дата, которую нужно проверить входит ли она в этот диапазон дат.  Как такое можно проверить? Но только переводить дату в число не подходит. Нужно как-то по другому.

Большое спасибо за помощь!

Автор: solenko 26.9.2008, 19:37
Igor_K, почему не подходит?
Если действительно не подходит (но я себе такого представить не могу), то разбивайте на части и эти части сравнивайте

Автор: Igor_K 26.9.2008, 19:43
Потому что могут быть даты раньше 1970 года. В этом случае нужно что-то другое придумать. 
Я просто не мойму как их иначе можно сравнить.

Автор: solenko 26.9.2008, 20:00
Код

<?php
$d= new DateTime('999-01-01');
$d1 = new DateTime('888-01-01');
if ($d1 > $d) {
    echo '?????????';
}else{
    echo '!!!!!!';
}



Автор: Igor_K 26.9.2008, 20:12
Код

$d= new DateTime('999-01-01');
$d1 = new DateTime('888-01-01');
$d2 = new DateTime('1014-01-01');

if ($d2 >= $d && $d1 <= $d) echo '!!!!!!!!!!!!!!!!!!!!!';

 smile 

Спасибо, solenko!!!!! smile 

Автор: Akina 26.9.2008, 20:24
Цитата(Igor_K @  26.9.2008,  21:12 Найти цитируемый пост)
Код

($d2 >= $d && $d1 <= $d)

Это хорошо при условии, что гарантированно $d2>$d1. А если нет, придется или комплементарное условие строить, или писАть нечто вроде 
Код

if ( datediff($d, $d1) * datediff($d, $d2) ) <= 0

Автор: Igor_K 26.9.2008, 20:48
Если бы я знал, что такое комплиментарное условие...  smile 

Автор: Akina 26.9.2008, 21:31
Комплементарные == взаимно дополняющие.
Код

if ($d2 >= $d && $d1 <= $d) || ($d1 >= $d && $d2 <= $d)

Автор: Sunvas 27.9.2008, 01:14
Как вариант, можно все привести к TimeStamp и сравнивать, как обычные числа. Интересует?

Автор: shurup_312 27.9.2008, 05:57
Как вариант разбиваем по точкам на отдельные число, месяц и год. Сморим входит ли год в промежуток, если да, то месяц, если да то день. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)