PHP 在新设置时产生“没有这样的时区”错误


php producing 'no such timezone' error on new setup

在我的本地主机XAMPP服务器上运行symfony2应用程序(已经在商业上运行)时,我收到以下错误:

Warning: IntlDateFormatter::setTimeZone(): datefmt_set_timezone: no such time zone: '1024' in C:'Dropbox'xampp'htdocs'SBSonline'sbsonline-v2'vendor'symfony'symfony'src'Symfony'Component'Form'Extension'Core'Type'DateType.php line 267

我的 PHP.ini 文件按应有的方式设置时区:

date.timezone= "Europe/London"

从堆栈来看,错误似乎来自formBuilder,但如前所述,应用程序正在主服务器上工作。

我尝试替换php_intl.dll文件以防万一,但它没有区别。 有人有什么想法吗?

运气不好后我发现,如果你直接编辑供应商''symfony''symfony''symfony''src''Symfony''Component''Form''Extension''Core''Type''DateType.php你可以直接欺骗它

将默认代码从:

    if (version_compare('PHP_VERSION, '5.5.0-dev', '>=')) {
        $formatter->setTimeZone('DateTimeZone::UTC);
    } else {
        $formatter->setTimeZoneId('DateTimeZone::UTC);
    }

自:

    if (version_compare('PHP_VERSION, '5.5.0-dev', '>=')) {
        $formatter->setTimeZone('UTC');
    } else {
        $formatter->setTimeZoneId('DateTimeZone::UTC);
    }

我们运行的是 Symfony 2.1/PHP 5.5.15,所以我不知道这是否是 2 之间的兼容性问题。