首页 > 解决方案 > 请告诉我为什么我不能让 php 中的 date("I") 工作

问题描述

我不能让它工作!

我们今天改为夏令时 - 八小时前。然而 date("I") 函数仍然返回“0”而不是“1”。如果我使用此代码:

<?php
echo(date("I"));
?>

它返回 0

它把我逼疯了——请问有什么想法吗?

标签: phpdate

解决方案


您需要正确设置时区:

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

推荐阅读