Как проверить, соответствует ли дата в заданном диапазоне дней + месяца?

Возможный дубликат:
Как проверить, находится ли дата в заданном диапазоне?

Каждый год делится на такие периоды, как

from 11-28 to 01-20 from 01-21 to 02-16 from 02-17 to 03-15 from 03-16 to 05-04 from 05-05 to 07-25 from 07-26 to 10-10 from 10-11 to 11-27 

И несколько дней как

 $date1 = '06-09-1990'; $date2 = '05-03-1867'; $date3 = '02-29-1945'; $date4 = '06-24-2012'; $date5 = '12-25-2015'; $date6 = '07-15-2010'; 

Как проверить, находится ли день в одном из этих диапазонов?

PS Извините меня за мой английский

Вы можете использовать эту небольшую функцию:

 <?php $s_date = strtotime("2009-03-01 12:00"); $e_date = strtotime("2009-03-03 14:00"); $date = strtotime("2009-03-02 13:00"); if($date > $s_date && $date < $e_date) print "Date is between start and end"; else print "Date is outside start and end"; ?> 

Другой путь


 function isDateBetween($dt_start, $dt_check, $dt_end){ if(strtotime($dt_check) > strtotime($dt_start) && strtotime($dt_check) < strtotime($dt_end)) return true; return false; } isDateBetween("2004-01-01", "2004-01-02", "2004-01-03") 

Значения даты в PHP выражаются как временные метки UNIX, и они представляют собой количество секунд, прошедших с 1 января 1970 года.

Вы можете использовать функцию mktime для создания дат ( http://php.net/manual/en/function.mktime.php ). Когда у вас есть их как цифры, вы можете легко их сравнить.

 $interval_start = mktime(0, 0, 0, 1, 0, 2000); $interval_end = mktime(0, 0, 0, 1, 0, 2010); $my_date = mktime(0, 0, 0, 1, 0, 2004); if($my_date > $interval_start && $my_date < $interval_end) { // in the interval } else { // not in the interval }