我不能让它工作!
我们今天改为夏令时 - 八小时前。然而 date("I") 函数仍然返回“0”而不是“1”。如果我使用此代码:
<?php
echo(date("I"));
?>
它返回 0
它把我逼疯了——请问有什么想法吗?
您需要正确设置时区:
echo date_default_timezone_get(); // UTC
echo date('I'); // 0
// configure timezone correctly
ini_set('date.timezone', 'Europe/Amsterdam');
echo date('I'); // 1
也可以直接在 php.ini 文件中配置,也可以调用date_default_timezone_set().
阅读有关 PHP 中 date_default_timezone_get() 的更多信息
但是,我鼓励您改用 DateTime,因为全局配置时区可能会产生意想不到的副作用。
$dt = new DateTime('now', new DateTimeZone('Europe/Amsterdam'));
echo $dt->format("I"); // 1