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 минут). Этот код работал правильно - есть идеи, что я не делаю правильно?

0 ответов

Другие вопросы по тегам