我想测试今天的日期是否在rangeBegin
和rangeEnd
的范围内。
目前,以下代码返回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日之间返回。
答案 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");