PHP:查找预订日期是否在任何指定的日期范围内

时间:2016-12-12 22:42:20

标签: php

如果客户在指定的日期范围内预订,我最初要求我分配特价时,我已经解决了客户的初始要求。

然而,他现在已经将要求扩展到多个日期范围,而且我对如何操纵我以前的工作代码感到茫然。

这是我之前用于1个日期范围的代码

2016-11-25 -----> 2017-01-02
2017-01-20 -----> 2017-02-06
2017-03-17 -----> 2017-03-27
2017-04-27 -----> 2017-05-04
2017-05-25 -----> 2017-05-31

现在我有多个日期范围

Dict1['Dates']

有谁能告诉我要采取的方向?

仅供参考,我实际上是一个CSS人,但有时需要做jQuery和PHP。

1 个答案:

答案 0 :(得分:3)

这适用于任何您想要的范围。

$book_start_date = $start->format('d F Y');
$book_end_date = $end->format('d F Y');

$daterange_season = array(
     array('2017-01-20', '2017-01-25'),
     array('2017-01-29', '2017-02-15')
); 

$daterange_booked = array($book_start_date, $book_end_date);

$start_book = new DateTime(min($daterange_booked));
$end_book = new DateTime(max($daterange_booked));

foreach($daterange_season as $singleRange){

    $range_min = new DateTime(min($singleRange));
    $range_max = new DateTime(max($singleRange));

    if ( $start_book >= $range_min && $end_book <= $range_max ) { 

    // Apply special rate
        break;
    }

}