PHP两个日期之间的差异?

Jai*_*iff 12 php datediff

可能重复:
如何使用PHP计算两个日期之间的差异?
php中的日期差异?

我在变量中有两个日期

$fdate = "2011-09-01"

$ldate = "2012-06-06"
Run Code Online (Sandbox Code Playgroud)

现在我需要它们之间的月份差异.
例如,如果你从明年的09(9月)到06(6月)计算这个答案应该是10 - 结果你会得到10.
我怎么能用PHP做到这一点?

Bob*_*oby 19

更优雅的解决方案是使用DateTimeDateInterval.

<?php

// @link http://www.php.net/manual/en/class.datetime.php
$d1 = new DateTime('2011-09-01');
$d2 = new DateTime('2012-06-06');

// @link http://www.php.net/manual/en/class.dateinterval.php
$interval = $d2->diff($d1);

$interval->format('%m months');
Run Code Online (Sandbox Code Playgroud)

  • 如果间隔超过12个月,这不起作用.差异为13个月将显示为1.正如用户在另一个答案的评论中提到的那样,您可以使用`$ interval-> m + 12*$ interval-> y`来解决此问题. (33认同)

Dev*_*tor 13

看看date_diff:

<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%m months');
?>
Run Code Online (Sandbox Code Playgroud)

  • 使用$ interval-> m +($ interval-> y*12)添加年份 (6认同)
  • 我的观点是,你没有考虑到这里的一年. (2认同)