【问题标题】:Returning number of months between two dates返回两个日期之间的月数
【发布时间】: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 个月。
  • 谢谢,这是缺少的链接!

标签: php datetime date-math


【解决方案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';

这会有所帮助

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 2017-08-06
    • 1970-01-01
    • 2019-03-28
    • 2011-06-06
    相关资源
    最近更新 更多