【问题标题】:Timezone with symfony 2symfony 2 的时区
【发布时间】:2011-05-31 21:52:47
【问题描述】:

我在使用 Symfony 2 时遇到了一些麻烦,试图通过以下方式生成架构:

php console/app generate:schema:create

我遇到了一个错误:

[Exception]                           
DateTime::__construct(): 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 'Europe/Berlin' for 'CEST/2.0/DST' instead

因此,我正在尝试使用

更改我的 php.ini 中的时区
date.timezone = 'Europe/Paris'

但即使我重新加载我的 apache,我仍然会得到 ​​p>

date.timezone   Europe/Zurich   Europe/Zurich

如果我查看我的phpinfo(),那么我真的不知道接下来我应该尝试什么......而且我什至不确定我是否处于良好状态。

谢谢你帮助我

【问题讨论】:

  • Apache 是否使用您正在更改的 php.ini?根据您的设置,您可能还需要为多个 php.ini 配置它(一个用于 main,一个用于 Cli)。例如,如果您使用 MAMP,您的控制台命令可能看起来更像这样:
  • 我没有使用 MAMP,我在 php_info() 文件中使用了命令 echo get_cfg_var('cfg_file_path'); 以确保我使用的是好的。
  • 如果在命令行上执行 php --ini 会得到什么?
  • php -c /Path/to/php.ini_folder/app/console 命令
  • 这个技巧对我有用:mikecroteau.wordpress.com

标签: macos symfony timezone php


【解决方案1】:

在 mac 上,如果您有 /etc/php.ini.default,请执行

sudo cp /etc/php.ini.default /etc/php.ini 

然后做

php --ini 

查看它现在加载了一个 php.ini 文件。

【讨论】:

  • 你为我节省了很多时间 +1
  • 我在附加文件 /usr/local/php5/php.d/99-liip-developer.ini 中找到了该设置
  • @MonstersX,你救了我! +100500!
【解决方案2】:

这个把戏

还有/etc/php5/cli/php.ini/etc/php5/apache2/php.ini

例如datetime = 'America/Lima'

并运行命令

$ sudo apt-get install php5-sqlite 
$ sudo /etc/init.d/apache2 restart

【讨论】:

    【解决方案3】:

    PHP 的一些第三方发行版(包括 MAMP)对时区进行了硬编码。例如,MAMP 2.0 被硬编码为 Europe/Berlin,没有办法改变它。即使更改 php.ini 模板中的值也没有效果,因为 MAMP 会覆盖您的值。您是从源代码、预编译包中使用 PHP,还是将 PHP 作为某种 LAMP 堆栈的一部分?

    【讨论】:

      【解决方案4】:

      如果你是基于debian的,你必须修改文件/etc/php5/cli/php.ini中的参数,在/etc/php5/apache2/php.ini中修改是没有效果的。

      【讨论】:

        【解决方案5】:

        我知道这是一张旧票,但由于我也遇到了这个问题,而且它仍然开放,我想我会分享我的快速“n”脏解决方案:

        就我而言,date.default 根本没有设置,我无法更改 php.ini。因此,作为权宜之计,我在 web/app.php 的开头添加了 date_default_timezone_set('Europe/Dublin') 以在运行时更改时区,这对我来说效果很好。

        如果您使用控制台运行任何命令,您可能还必须将调用添加到此脚本的顶部。

        【讨论】:

          【解决方案6】:

          我的共享主机遇到了这个问题。他们告诉我我无法通过 php.ini 更改时区,但您可以尝试使用 .htaccess 文件。

          在安装 Symfony 的文件夹中创建 .htaccess 并将以下代码放入其中:

          SetEnv TZ America/Sao_Paulo
          

          希望这会有所帮助。

          干杯, 卢西亚诺

          【讨论】:

            【解决方案7】:

            对于 Windows,我为网络服务器安装了 XAMPP,并下载并安装了 PHP,以便我可以从命令提示符运行 symfony 命令。

            在这种情况下,我执行 Symfony 命令时使用的php.ini 文件位于C:\Program Files(x86)\PHP\php.ini 中。您必须拥有管理员权限才能编辑此文件,因此我以管理员身份启动了 Notepad++ 并打开了该文件。

            查找date.timezone 并根据您的时区进行修改,例如date.timezone = Africa/Nairobi。时区在 php 网站上列出,只需搜索 php, timezones。无需重新启动计算机或网络服务器。

            【讨论】:

              【解决方案8】:

              我刚刚在 Mac 10.11.5、PHP 5.6.8 上使用 XAMPP 遇到了这个问题

              我的错误是“警告:date_default_timezone_get():无效的 date.timezone value 'America/Los Angeles'”,

              我通过发现唯一的问题是我的 PHP.ini date.timezone 设置的“洛杉矶”条目中缺少下划线来修复它。

              【讨论】:

                【解决方案9】:

                尝试执行这个命令:

                sudo ln -s /usr/local/php5/lib/php.ini /etc/php.ini

                在我的情况下是 Mac。 第一个 - 配置路径,第二个 - 不要更改。

                【讨论】:

                  猜你喜欢
                  • 2015-03-17
                  • 1970-01-01
                  • 2017-04-25
                  • 1970-01-01
                  • 1970-01-01
                  • 2016-02-26
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-03-25
                  相关资源
                  最近更新 更多