Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-日期时间月差异不考虑年差异_Php_Datetime - Fatal编程技术网

PHP-日期时间月差异不考虑年差异

PHP-日期时间月差异不考虑年差异,php,datetime,Php,Datetime,我花了好几个小时想弄明白这一点,但没有结果:一个人如何计算两个日期之间整整几个月的差异,又如何计算年份? 下面的代码 $assignedDate=新日期时间('2011-02-03'); $firstDate=新日期时间('2013-03-03'); $interval=$assignedDate->diff($firstDate); $months=(int)$interval->格式(“%m”); 我坚信两者之间的差异为1,但是,这不适用于我的应用程序,49将是预期的结果,我在这个奇妙的地

我花了好几个小时想弄明白这一点,但没有结果:一个人如何计算两个日期之间整整几个月的差异,又如何计算年份? 下面的代码

$assignedDate=新日期时间('2011-02-03');
$firstDate=新日期时间('2013-03-03');
$interval=$assignedDate->diff($firstDate);
$months=(int)$interval->格式(“%m”);
我坚信两者之间的差异为1,但是,这不适用于我的应用程序,49将是预期的结果,我在这个奇妙的地方调查并发现了这段代码,但得到了“错误的字符串串联运算符”,因此我假设问题出在它们的stringy输出和put(int)上领先两名,但得到0:

echo($diff->format('%y')*12)+$diff->format('%m'))。“整月差”;

是否有可靠的解决方案来查找一年中两个日期之间的月差?

无需使用
format()
方法格式化数字。您只需访问对象的公共属性:

$months=$interval->m+$interval->y*12;

如果您尝试为它们使用时间戳,然后使用函数获取差异,会怎么样?或者看看这个:啊,是的,非常好。但是,如果我的第一个日期落后于指定的日期,它将返回一个正数,而不是期望的负数。有办法解决这个问题吗?@PwnageAtPwn:请参阅公共属性
invert
,或者只使用
->format('%R')
(或
'%R'
)方法格式化符号,如。