Я создал функцию, чтобы выработать количество дней, а затем недель между двумя датами, в приведенном ниже примере есть 35 дней, что составляет ровно 5 недель, однако функция возвращается совсем не так на 4.8571428571429 - подразделение убивает остаток и выходите на 4.Исправить количество дней/недель между 2 днями?
Я мог бы использовать функцию 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;
Для округления: 'round (" 4.8571428571429 ", 0, PHP_ROUND_HALF_UP);' –
Это, вероятно, связано с идеей инклюзивного/эксклюзивного диапазона. Ответ, который вы получаете, на самом деле составляет 34/7. Значение diff() не включает ограничительную дату на одном конце. – dan08
try Round [ссылка] http://php.net/round –