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

时间:2019-03-03 15:42:51

标签: php datetime timer countdown

我正在创建一个简单的计时器,该计时器将两个日期之间的时差与之类似地输出: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 :(得分:1)

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