我已经创建了一个函数来计算两个日期之间的天数和周数,在下面的例子中有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;
答案 0 :(得分:3)
$date2->add(new DateInterval('P1D'));
在$ date2初始化后使用此行。
为什么这会起作用? 如果算一算,现在有34天:从23-02 0:00 TILL 29-03 0:00。
如果你想计算这最后一天(有35天),你还需要额外增加一天。
答案 1 :(得分:1)
将一天添加到$ 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;
但是,您与原始日期的差异仍然不是一整周