我想计算两个yyyymm日期之间的月差异。我在下面有这个功能,但只有当我使用yyyy-mm时它才有效。
$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 :(得分: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