PHP倒计时计时器显示小时错误

PHP倒计时计时器显示小时错误,php,datetime,timer,countdown,Php,Datetime,Timer,Countdown,我正在创建一个简单的计时器,它将两个日期的差值输出为:20天5小时23分钟。 当差异不超过一个月时,一切正常,但当我尝试大的差异时,天和分钟显示正常,但小时总是+1小时。如何解决这个问题 function countdownTimer($targetTime) { $targetTime = DateTime::createFromFormat('Y-m-d H:i:s',$targetTime); $currentTime = new DateTime(); $timeDiffer

我正在创建一个简单的计时器,它将两个日期的差值输出为: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");    
}

可能是因为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));

哦,是的,在夏时制改变之前一切都很好,所以我认为一切都正常。