“strtotime('明天') - 时间()”或“strtotime('明天') - strtotime('now')”将不会给出正确的时间,直到即将到来的午夜

时间:2014-03-13 23:31:22

标签: php date time countdown

我试图做一个简单的倒计时,但它给出了错误的时间:

$time_seconds_view = strtotime('tomorrow') - time(); echo date("H" . " \h\o\u\\r\s\, " . "i" . " \m\i\\n\u\\t\\e\s\, \a\\n\d " . "s" . " \s\\e\c\o\\n\d\s", $time_seconds_view);

吐出00 hours, 30 minutes, and 00 seconds

即使date_default_timezone_set($this->session->userdata('timezone'));设置为America/Phoenix

它应该吐出07 hours, 30 minutes, and 00 seconds

好像PHP没有考虑到我已经更改了默认时区。

我做错了什么?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

使用DateTime。这对日期数学来说要好得多。

$tomorrow = new DateTime('tomorrow');
$now = new DateTime();
$diff = $tomorrow->diff($now);
echo $diff->format("%h hours, %i minutes, %s seconds");
// 7 hours, 12 minutes, 53 seconds

See in action