【问题标题】:Count number of days between two dates should be two days with 1 day interval, but instead count as one day计算两个日期之间的天数应为两天,间隔为 1 天,但应计为 1 天
【发布时间】:2020-07-23 14:37:08
【问题描述】:

我计算了两个日期之间的天数,即 7 月 24 日和 7 月 25 日。这应该是两天,但我得到了一天。代码如下:

$begin = new \DateTime("2020-07-24");
$end = new \DateTime("2020-07-25");

$interval = \DateInterval::createFromDateString('1 day');
$period = new \DatePeriod($begin, $interval, $end);

echo count($period); // => this return 1

我想要的是两天而不是一天。如果我只需要在 count($period) 中添加 +1 是否正确?有没有其他方法可以解决这个问题?

【问题讨论】:

  • 那个日期时间段从午夜到午夜是一天...
  • 一天似乎是正确的,但这取决于所涉及的时间。

标签: php date intervals


【解决方案1】:

由于您没有提及时间,因此时间将默认为 00:00

根据您提供的计算,这两个日期之间的差异确实是 1 天。但是,如果您希望计数为 2 天。然后将 1 天添加到您的结果中,它总是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 2019-09-27
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多