php只比较两个日期,月份和年份

时间:2016-05-17 15:28:30

标签: php date

我想比较两个日期 - 只是月份和年份 - 看看是否有一个落在另一个之前。这就是我目前所拥有的:

$monthyear = date("M Y"); 
$finish = date("M Y",strtotime($row->finish));
$start = date("M Y",strtotime($row->start));
if ($start <= $monthyear and $finish >= $monthyear) {
   do some stuff..
}

我试图用简单的英语做的事情:如果开始日期是在当月之前或期间,结束日期是在当月或之后,那么就做一些事情。

然而,正在发生的事情是,例如,2015年10月被视为在2016年5月之后下降(即,如果完成日期是2015年10月,它将在括号内运行)。据我所知,它只是比较月份,而不是月份和年份。

知道怎么做才能正确进行这些比较吗?

2 个答案:

答案 0 :(得分:5)

将格式更改为&#39; Y-m&#39;按字母顺序可比较为2个字符串

$monthyear = date("Y-m"); 
$finish = date("Y-m",strtotime($row->finish));
$start = date("Y-m",strtotime($row->start));
if ($start <= $monthyear and $finish >= $monthyear) {
   do some stuff..
}

答案 1 :(得分:0)

您需要通过strtotime进行比较。

$monthyear = strtotime(date("F Y")); 
$finish = strtotime("May 2016");
$start = strtotime("October 2015");
if($start <= $monthyear && $finish >= $monthyear){
    echo 'Inner';
}else{
    echo 'Outer';
}

结果必须是内部