Php 如何检查两个日期是否在不同的月份

Php 如何检查两个日期是否在不同的月份,php,Php,我需要确定两个日期在不同的月份, 我试过这个方法,但结果不好 $to_date = "2015-01-31"; $from_date = "2015-02-01"; $date1 = date_create($to_date); $date2 = date_create($from_date); $interval = date_diff($date1,$date2); $elapsed['days'] = $interval->format('%a'); $elapsed['mo

我需要确定两个日期在不同的月份, 我试过这个方法,但结果不好

$to_date = "2015-01-31";
$from_date = "2015-02-01";

$date1 = date_create($to_date);
$date2 = date_create($from_date);

$interval = date_diff($date1,$date2);

$elapsed['days'] = $interval->format('%a'); 
$elapsed['months'] = $interval->format('%m');


------------------- alternative method 
$month0 = date('n',$to_date);
$month1 = date('n',$from_date);
$elapsed['month_diff']=$month1-$month0;

-----------------------------
print_r($elapsed); 

Array ( [month_diff] => 0 [days] => 1 [months] => 0 )

有什么提示吗?

您需要使用
getdate
函数。此函数用于返回包含日期信息的数组。例如:

$to_date = "2015-01-31";
$from_date = "2015-02-01";

$date1 = getdate(strtotime($to_date));
$date2 = getdate(strtotime($from_date));
if($date1["mon"] !== $date2["mon"] {
   ...your code....
}

date
的第二个参数是时间戳,而不是字符串。因此,您应该使用
strotime
获取日期的时间戳:

$month0 = date('n',strtotime($to_date));
$month1 = date('n',strtotime($from_date));
$elapsed['month_diff'] = $month1 - $month0;

这个也很好用

$dateA1 = date_parse($to_date);
$dateA2 = date_parse($from_date);

$elapsed['month_diff']=$dateA1['month']-$dateA2['month'];

===这不应该是
==?@pkachhia不!1月1日和31日之间的差值为30,但两天都在一个月内。1月31日和3月1日之间的差值小于30,但这些日子在不同的月份。