我想测试一下今天的日期是否在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 日之间返回 true。
请记住,1月2日是明年。而时间不是那样工作的。
$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");