php检查月份存在于两个日期之间


php check month exist between two dates

我有代码来检查给定日期是否在两个日期的范围内。

$paymentDate = strtotime("2014-02-10 00:00:00");
$contractDateBegin = strtotime("2014-01-01 00:00:00");
$contractDateEnd = strtotime("2014-02-16 00:00:00");
if (($paymentDate > $contractDateBegin) && ($paymentDate < $contractDateEnd))
{
 echo "is between";
}
else
{
 echo "NO GO!";  
}

但我需要知道一个月是在两个日期的范围内。这里只有月份和年份。在这里,我将给定的日期转换为unix时间戳,并比较这些值以检查结果。如果我们没有日期,那么如何检查是我的问题。

认为这就是你想要的:

$month             = DateTime::createFromFormat('Y-m', '2010-05');
$contractDateBegin = (new DateTime('01/01/2001'))->modify('last day of this month')->setTime(23, 59, 59);
$contractDateEnd   = (new DateTime('01/01/2012'))->setTime(0, 0, 0);
if ($month > $contractDateBegin && $month < $contractDateEnd) {
    // The whole month is in between 
}

演示

试试这个:

$paymentDate = DateTime::createFromFormat('Y-m-d', "2013-05-25 00:00:00");

$contractDateBegin = date_create_from_format('Y-m-d', "2012-01-01 00:00:00");
$contractDateEnd = date_create_from_format('Y-m-d', "2014-01-01 00:00:00");
if (($paymentDate > $contractDateBegin) && ($paymentDate < $contractDateEnd))
{
month is between
}