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

时间:2016-01-08 10:05:57

标签: 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['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 )

任何提示?

3 个答案:

答案 0 :(得分:2)

您需要使用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....
}

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

这个也很好用

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

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