2014-04-17 160 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