Symfony2和date_default_timezone_get() - 依赖系统的时区设置是不安全的

 多米音乐_34014997 发布于 2023-02-08 14:50

我有一个Symfony2项目.我今天更新了我的PHP到5.5.7,从那以后,我得到了

Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in...

我在php.ini中设置了默认时区

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Paris";

为了确保这是一个很好的php.ini,我正在检查

phpinfo();

我到达那里的路径是我正在修改的路径:

 /usr/local/php5.5.7/lib 

但在那里,我看到了

Default timezone    UTC 

这很奇怪.

任何的想法?谢谢.

3 个回答
  • 找到了解决这个问题的类似方法(至少它对我有用).

      首先检查它的CLI php.ini位置:

      php -i | grep "php.ini"

      在我的情况下,我最终得到:配置文件(php.ini)路径=> /等

      然后cd ..所有的背部和方式cd进入/etc,做ls我的情况的php.ini没有露面,只有php.ini.default

      现在,复制名为php.ini的php.ini.default文件:

      sudo cp php.ini.default php.ini

      要编辑,请更改文件的权限:

      sudo chmod ug+w php.ini

      sudo chgrp staff php.ini

      打开目录并编辑php.ini文件:

      open .

      提示:如果由于某些权限问题而无法编辑php.ini,请复制'php.ini.default'并将其粘贴到桌面上并将其重命名为'php.ini'然后打开它并在步骤后编辑它7.然后在/ etc文件夹中移动(复制+粘贴)它.问题将得到解决.

      搜索[日期]并确保以下行的格式正确:

      date.timezone = "Europe/Amsterdam"

    我希望这可以帮助你.

    2023-02-08 14:51 回答
  • 当前接受的破解答案在Symfony 2.3中已弃用,将被删除3.0.它应该移动到构造函数:

    public function __construct($environment, $debug) {
        date_default_timezone_set('Europe/Warsaw');
        parent::__construct($environment, $debug);
    }
    

    2023-02-08 14:51 回答
  • 也许您正试图在Apache中设置它php.ini,但您的CLI(命令行界面)php.ini并不好.

    php.ini使用以下命令查找文件:

    php -i | grep php.ini
    

    然后搜索date.timezone并设置它"Europe/Amsterdam".所有有效的时区都可以在http://php.net/manual/en/timezones.php找到

    另一种方法(如果另一种方法不起作用),搜索该文件AppKernel.php,该文件应app位于Symfony项目目录的文件夹下.__construct在类中覆盖以下函数AppKernel:

    <?php     
    
    class AppKernel extends Kernel
    {
        // Other methods and variables
    
    
        // Append this init function below
    
        public function __construct($environment, $debug)
        {
            date_default_timezone_set( 'Europe/Paris' );
            parent::__construct($environment, $debug);
        }
    
    }
    

    2023-02-08 14:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有