在夏令时的情况下,智利时区错误


wrong Chile timezone in case of DST

我有个问题。。我在PHP上处理时区,但在智利的情况下,我面临着问题。对于智利,CLT通常适用,CLST适用于夏令时,PHP代码为美国/圣地亚哥。但它返回到目前没有夏令时,但实际上目前有夏令时。。有人能帮忙吗?谢谢,

date_default_timezone_set ('America/Santiago');
$time = strtotime ('11 March 2011');
for ($i = 0; $i < 10; $i ++)
{
    echo "<br/>Current " . date ('e T c I', $time);
    $time += 60 * 60 * 24;
}

显示

Current America/Santiago CLST 2011-03-11T00:00:00-03:00 1
Current America/Santiago CLST 2011-03-12T00:00:00-03:00 1
Current America/Santiago CLT 2011-03-12T23:00:00-04:00 0
Current America/Santiago CLT 2011-03-13T23:00:00-04:00 0

您所在地区的夏令时将于3月12日结束。当然,我们都知道夏令时根据http://www.timeanddate.com/news/time/chile-longer-dst-2012.html,但PHP并不知道这一点。

我也遇到了同样的问题。更新时区b对我有效。

转到:https://pecl.php.net/package/timezonedb

对于Widnows:下载最新版本的dll,复制到"ext"目录中。编辑php.ini并将其放在下面一行:

extension=php_timezonedb.dll

对于Linux:您可以使用:

pecl安装时区为

并且在php.ini中放入:

extension=php_timezonedb.so