测试今天的日期是否在日期和月份之间

时间:2014-12-17 23:25:44

标签: php

我想测试今天的日期是否在rangeBeginrangeEnd的范围内。 目前,以下代码返回false。使用echo $today会导致值为17/12,这对于today

的值是正确的
   <?php
    $today = date('d.m');
    $today= date('d/m', strtotime($today));; 
        $rangeBegin = strtotime("01-12");
        $rangeEnd =  strtotime("02-01");

        if($rangeBegin <= $today && $rangeEnd >= $today)
        {
          //in range
        }
        else
        {
          //not in range
        }
    ?>

有人可以告诉我上述代码中出错的地方,以便测试今天的日期是否在两个范围之间。

即。因为它是12月17日,它应该在12月1日到1月2日之间返回。

1 个答案:

答案 0 :(得分:3)

请记住明年1月2日。并且strtotime不能那样工作。

$today = new DateTime();
$year = (int) $today->format("Y");
$rangeBegin = DateTime::createFromFormat("Y-m-d H:i:s", "$year-12-01 00:00:00");
$rangeEnd = clone $rangeBegin;
$rangeEnd =  $rangeEnd->modify("+32 days");

if ($rangeBegin <= $today && $rangeEnd >= $today) {
  echo "true";
} else {
  echo "false";
}

在某处设置正确的时区。

date_default_timezone_set("Europe/Oslo");