Таймер обратного отсчета PHP показывает неправильные часы - PullRequest
0 голосов
/ 03 марта 2019

Я создаю простой таймер, который берет разницу от двух дат и выдает их примерно так: 20 дней 5 часов 23 минуты.Все работает хорошо, когда разница не больше, чем месяц, но когда я пробую большую разницу, дни и минуты показывают хорошо, но час всегда +1 час.Как это исправить?

function countdownTimer($targetTime) {
  $targetTime = DateTime::createFromFormat('Y-m-d H:i:s',$targetTime);
  $currentTime = new DateTime();
  $timeDifference = $targetTime->diff($currentTime);

  return $timeDifference->format("%a days %H hours %i minutes");    
}

1 Ответ

0 голосов
/ 03 марта 2019

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

function countdownTimer($targetTime) {
  $targetTime = DateTime::createFromFormat('Y-m-d H:i:s',$targetTime);
  $currentTime = new DateTime();
  $timeDifference = $targetTime->diff($currentTime);

  return $timeDifference->format("%a days %H hours %i minutes");    
}

$targetTime = date_create("@".time())->add(date_interval_create_from_date_string("+1 month"))->format('Y-m-d H:i:s');

var_dump(countdownTimer($targetTime));
...