PHP 倒数计时器显示时间错误
PHP countdown timer show hours wrong
我正在创建一个简单的计时器,它从两个日期中获取差异并输出如下: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));
我正在创建一个简单的计时器,它从两个日期中获取差异并输出如下: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));