2014-04-17 120 views
0

我想计算两个yyyymm日期之间的月份差异。我在下面有这个功能,但它只有在我使用yyyy-mm代替时才有效。两个日期之间的月份差异 - yyyymm格式

$date1 = new DateTime('2014-01'); 
$date2 = new DateTime('2013-06'); 
$mth = mthdiff($date1, $date2); 

function mthdiff($date1,$date2){ 


$diff = $date1->diff($date2); 

return (($diff->format('%y') * 12) + $diff->format('%m')); 

} 
+0

使用'date_parse_from_format'以您指定的格式解析日期。 – Barmar

+0

使用str_to_time – Haseeb

回答

3

修改你的函数使用DateTime::createFromFormat()

function mthdiff($date1,$date2){ 
    $d1 = DateTime::createFromFormat('Ym', $date1); 
    $d2 = DateTime::createFromFormat('Ym', $date2); 
    $diff = $d1->diff($d2); 
    return (($diff->format('%y') * 12) + $diff->format('%m')); 
} 

用法:

echo mthdiff('201401', '201306'); 

输出:

7 

Demo