我创建了一个函数来计算两个日期之间的天数和周数,在下面的例子中,有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;
然而,您与原始日期