【问题标题】:PHP - DateTime diff() shows 0 months for two dates with one year difference?PHP - DateTime diff() 显示两个日期相差一年的 0 个月?
【发布时间】:2013-07-10 11:44:02
【问题描述】:

我正在运行一个快速测试,以帮助一位同事使用DateTime 对象解决与 PHP 中的日期相关的问题。

令人惊讶的是,当我运行这段代码时:

namespace Tests\DateTime {
    $date1 = new \DateTime("2013-01-01", new \DateTimeZone("UTC"));
    $date2 = new \DateTime("2014-01-01", new \DateTimeZone("UTC"));
    $interval = $date1->diff($date2);
    print $interval->m;
}

我得到0 作为返回值。当您使用它来测量同一年内这两个日期之间的差异时,一切正常。 1,2,3,4,5, ..., 11 从 1 月到 12 月的月差。

为什么会这样?

【问题讨论】:

  • 如果你只想有几个月,这应该是 $monthDiff=$interval->y*12+interval->m;
  • 正是我想要的!非常感谢:)
  • 如果你做 var_dump($interval);一切都会揭晓。

标签: php datetime diff utc


【解决方案1】:

我认为你得到的结果是零,因为你只打印了几个月的差异。您可能希望通过DateInterval::format 运行您的时间间隔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-22
    • 2014-04-07
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2013-07-17
    相关资源
    最近更新 更多