我需要确定两个日期是在不同的月份, 我试过这个扫管笏,但结果不好
$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 )
任何提示?
答案 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'];