我需要确定日期(月和日)是否在两个月/日之间.
我在这篇文章中附上了一张图片,描述了我正在尝试做的事情.基本上,示例"当前日期"以红色突出显示,并且介于最近的日期(3月15日和11月22日)之间.然而,当我使用Unix时间戳并人为地在日期中添加一年时,脚本认为11月22日还没有发生,因此它表明2月1日是在3月15日和11月22日之前,而不是在它们之间.所以,我需要比较日期而不使用一年.
希望这是有道理的.我只想比较几个月和几天的日期,但忽略了一年,并使用像我在图像中显示的轮子这样的框架.

您的示例中的问题是(在同一年)上限日期早于下限日期。在这种情况下,任何小于上限(1月1日至3月14日)或大于下限(11月23日至12月31日)的日期都介于两者之间。
<?php
$upperBound = new DateTime("Mar 15");
$lowerBound = new DateTime("Nov 22");
$checkDate = new DateTime("Feb 1");
if ($lowerBound < $upperBound) {
$between = $lowerBound < $checkDate && $checkDate < $upperBound;
} else {
$between = $checkDate < $upperBound || $checkDate > $lowerBound;
}
var_dump($between);
?>
Run Code Online (Sandbox Code Playgroud)
显示:
boolean true
如果要检查的日期是“ 2月29日”,而当前年份不是a年,则DateTime会将其解释为“ 3月1日”。
要检查日期是否介于两个日期之间(包括两个日期),请使用:
if ($lowerBound < $upperBound) {
$between = $lowerBound <= $checkDate && $checkDate <= $upperBound;
} else {
$between = $checkDate <= $upperBound || $checkDate >= $lowerBound;
}
Run Code Online (Sandbox Code Playgroud)