【发布时间】:2014-06-26 20:06:23
【问题描述】:
在你打电话给行刑队之前,我意识到以前有人问过这个问题。我已经查看了 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+。我觉得我已经做出了真诚的努力来理解这个功能,只是有些东西我没有得到。如果有人能解释为什么我的代码不能正常工作,我将不胜感激。
【问题讨论】:
-
那是因为相差一整年。 DateInterval 将在滚动到一年之前从 0 到 11 个月报告。如果你这样做:
echo $interval->format("%y years");它会说 1 代表差异。无法让 DateInterval 报告超过 11 个月。 -
谢谢,这是缺少的链接!