Вопрос по php – Как проверить, находится ли дата в заданном диапазоне дня + месяц? [Дубликат]

-1

Possible Duplicate:
How to check if a date is in a given range?

Разделение каждого года на такие периоды, как

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';

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

Постскриптум Извините за мой английский

Одно из решений:gist.github.com/borazslo/84819edbf4dea7a67e2e borazslo
Я думаю, что это не дубликат. Диапазоны не имеют «год» в этом вопросе, так что сложнее. borazslo

Ваш Ответ

2   ответа
2

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

Ты можешь использоватьmktime функция для создания дат (http://php.net/manual/en/function.mktime.php ). Once you have them as numbers, you can easily compare them.

$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
}
мне нужен метод, действительный для любого года, а не для конкретного danielevigi
4

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

<?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";
?>

Another way


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")
мне нужен метод, действительный для любого года, а не для конкретного danielevigi
Алгоритм должен быть действителен для тех же периодов, но для любого года. С вашим методом я должен вставить чек на каждый год (очевидно, невозможно). danielevigi
У меня есть определенный день (например, 06.09.1990, 05.03.1867 и т. Д.). Я хочу отдать этот день периоду. Периоды одинаковы для каждого года (например, с 03-15 по 04-05, с 04-06 по 04-20 и т. Д. ...). danielevigi
Что конкретно здесь ???
Я не понимаю, что вы сказали? Это действительно для всех лет. Что за чек нужно вставить?

Похожие вопросы