Несоответствие с новым классом DateTime PHP - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужно получить диапазон по часам, начиная с фактического часа, например: если в этот момент в 05:25, мне нужно получить 05:00 и 06:00.

У меня есть этот код:

$currentHour = (new DateTime())->format('H:00');
$nextHour    = (new DateTime('+59 minutes'))->format('H:00');
$timeRangeFinal   = [$currentHour, $nextHour];

Если текущим часом не является 01:00, 02:00, 03:00 ... код работает нормально, но если текущий час, например, 02:00, массив такой же, $ timeRangeFinal [0] = "02:00" и $ timeRangeFinal [1] = "02:00".

Как получить диапазон по часам с *: 00?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Я написал немного для вас.это способ сделать это, но это то, как вы добавляете 1 час поверх этого.я написал небольшое решение (это также помогает мне учиться, поэтому я счастлив это сделать).

$currenttime = new \DateTime();
$currenttimehour = $currenttime->format('H:00');
$nextHour = $currenttime->add(new DateInterval('PT1H'))->format('H:00');

echo $currenttimehour;
echo ' ';
echo $nextHour;

это идет с текущего времени.сначала он форматируется в час, в котором вы находитесь. Затем он добавит дополнительный 1 час, который вам нужен, и отформатирует его в правильный формат.я надеюсь, что смогу вам чем-то помочь.

0 голосов
/ 14 февраля 2019

Вам нужно изменить эту строку кода

$nextHour    = (new DateTime('+59 minutes'))->format('H:00');

на эту

$nextHour    = ((new DateTime())->modify('+1 hour'))->format('H:00');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...