2014-06-26 59 views
0

在给呼叫队打电话之前,我意识到这个问题之前已经被问过了。我查看了stackoveflow(和其他地方)上的20个示例,并不理解为什么我的代码无法工作。我只是试图使用PHP的date_diff()函数来获取两个日期之间的月数。我只在程序风格上编码而已。返回两个日期之间的月份数

,我看到的最常见的例子:

$startdate = "2013-06-26"; 
$currentdate = "2014-06-26"; 

$date1 = date_create($startdate); 
$date2 = date_create($currentdate); 
$interval = date_diff($date2, $date1); 

echo $interval->format("%M months"); 

这似乎是普通型的回答,程序明智的,和工作适合所有人,但我。返回“00个月”,没有错误。我正在运行PHP 4+。我觉得我已经做出了真诚的努力去理解这个功能,并且只是我没有得到的东西。如果有人能说明为什么我的代码无法正常工作,我将不胜感激。

+1

这是因为不同的是整整一年。 DateInterval将在滚动到一年之前的0 - 11个月内进行报告。如果你这样做:'echo $ interval-> format(“%y years”);'它会说1代表差异。 DateInterval报告无法超过11个月。 –

+0

谢谢,这是缺少的链接! –

回答

1
$date1 = new DateTime("2013-06-26"); 
$date2 = new DateTime("2014-06-26"); 
$interval = date_diff($date1, $date2); 
echo $interval->m + ($interval->y * 12) . ' months'; 

这将有助于

相关问题