为 PHP 应用程序设置默认时区

Set the default time zone for the PHP application

我想知道我们是否也可以使用init_set()功能来设置默认时间。

我问这个问题的原因是我在一本书中遇到的另一个问题。而答案只有A.

这本书有错吗?

应该是A和C吧? 谢谢

还有选项D:使用date_default_timezone_set. The function you refer to in C is actually ini_set。所以这三种方式是:

  1. 在php.ini中添加一行:

    date.timezone = "Europe/Edinburgh"

  2. 使用ini_set:

    ini_set('date.timezone', 'Europe/Edinburgh');

  3. 使用date_default_timezone_set:

    date_default_timezone_set('Europe/Edinburgh');

关于选项 2 和 3 的注意事项是每次 运行 脚本时都必须调用它们。因此,如果您需要为您 运行 的每个脚本更改时区,使用选项 1 会更容易(假设您对 php.ini 具有编辑权限)。

至于选项 B,我想理论上它可以工作,但你真的想玩你的系统时间吗? (提示:否)。

这个问题的重点不是 init_set() 本身,而是指定的值。从 here 检查可用时区。它将发出 E_WARNING 无效 date.timezone 值 'Europe/Edinburgh'