DiffInMinutes неправильно внезапно
Я использую углерод для управления информацией о времени в PHP, и это работало очень хорошо. Теперь я узнал, что когда пользователи запрашивают материал с 14:00 до 16:00, он добавляет на пару (или более) больше часов сверху.
Я отладил, и это показывает, что все совершенно не так.
$current = Carbon::parse($formattedDate . ' ' . $request->from);
$until = Carbon::parse($formattedDate . ' ' . $request->until, '0');
$records = array();
while ($current->diffInMinutes($until, false) >= 0) {
$records[] = [
'day' => $formattedDate,
'hour' => $current->format('H:i:s')
];
// This is the part that I use to debug
print $current . ' is ';
print $current->diffInMinutes($until);
print ' away from ' . $until . '<br /><br />';
$current->addMinutes($request->step);
}
die();
}
Так $request->from
является 10:00
в то время как $request->until
является 11:00
, $request->step
является 30
, Они сброшены, и я даже попытался установить их в коде.
Что я получаю из верхнего кода:
2019-02-23 10:00:00 is 240 away from 2019-02-23 11:00:00
2019-02-23 10:30:00 is 210 away from 2019-02-23 11:00:00
2019-02-23 11:00:00 is 180 away from 2019-02-23 11:00:00
2019-02-23 11:30:00 is 150 away from 2019-02-23 11:00:00
2019-02-23 12:00:00 is 120 away from 2019-02-23 11:00:00
2019-02-23 12:30:00 is 90 away from 2019-02-23 11:00:00
2019-02-23 13:00:00 is 60 away from 2019-02-23 11:00:00
2019-02-23 13:30:00 is 30 away from 2019-02-23 11:00:00
2019-02-23 14:00:00 is 0 away from 2019-02-23 11:00:00
Как видите, все эти различия в минутах неверны (первое должно быть 60 минут). Этот код работал правильно - есть идеи, что я не делаю правильно?