检查当前日期是否在两个日期之间的有效方法(年无关紧要)

Nic*_*ick 1 php date

我的想法在这个问题上似乎一片空白.

我必须写一些东西来弄清楚当今日/月组合适合的日期范围.

我有一定数量的日期范围,它们是:

  $dateRanges = array(
    1 => "16 January to 30 April",
    2 => "1 May to 30 June",
    3 => "1 July to 15 August",
    4 => "16 August to 15 September",
    5 => "15 September to 15 October",
    6 => "16 October to 15 January"
  );
Run Code Online (Sandbox Code Playgroud)

我想要返回的是当前日期适合的范围的数组键.

目前,通过我的头去这就是所有我是必须要建立一个大的if语句来看待当前date('j')date('n')与匹配结果了.但肯定那很混乱而且效率不高?

任何更好的方法来解决这个问题的任何想法将不胜感激!

Mar*_*c B 5

$today = time();
foreach ($dateRanges as $key => $range) {
   list($start, $end) = explode(' to ', $range);
   $start .= ' ' . date('Y'); // add 2011 to the string
   $end .= ' ' . date('Y');
   if ((strtotime($start) <= $today) && (strtotime($end) >= $today)) {
       break;
   }
}
Run Code Online (Sandbox Code Playgroud)

$ key将是匹配日期范围的索引,或null/false.