更正2天之间的天数/周数


Correct no of days/weeks between 2 days?

我创建了一个函数来计算两个日期之间的天数和周数,在下面的例子中,有35天,正好是5周,但函数返回的值刚好是4.8571428571429,除法正在杀死剩余的值,并在4时输出。

我可以使用ceil函数将其四舍五入到5,但这对所有日期来说都是安全的方法吗?或者有更好的方法吗?

    $date1 = new DateTime('2015-02-23');
    $date2 = new DateTime('2015-03-29');
    $diff = $date2->diff($date1)->format("%a");
    $weeks = $diff / 7;
    return $weeks;
$date2->add(new DateInterval('P1D'));

在$date2初始化后使用此行。

为什么会这样?如果算上,你现在有34天的时间:从23-02 0:00到29-03 0:00。

如果你还想计算最后一天(有35天),你需要多加一天。

将一天添加到$date2

$date1 = new DateTime('2015-02-23');
$date2 = new DateTime('2015-03-29');
$date2->add(new DateInterval('P1D'));
$diff = $date2->diff($date1)->format("%a");
$weeks = $diff / 7;
return $weeks;

然而,您与原始日期

仍然没有完整的周数差异