php check month存在于两个日期之间

时间:2014-09-09 13:06:43

标签: php datetime

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

$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时间戳,并比较值以检查结果。如果我们没有约会,那么如何检查是我的问题。

2 个答案:

答案 0 :(得分:0)

认为这就是你要找的东西:

$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 
}

Demo

答案 1 :(得分:0)

试试这个:

$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
}