DiffInMinutes неправильно внезапно - PullRequest
0 голосов
/ 13 февраля 2019

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

...