【问题标题】:How to set a non working timezone in Cake如何在 Cake 中设置非工作时区
【发布时间】:2020-01-15 16:24:33
【问题描述】:

您好,我正在尝试更改项目中的时区,但它似乎不起作用。

我已经尝试了这段代码,并在 app.php 中留下了时区 => 'UTC':

date_default_timezone_set(Configure::read('Europe/Paris'));

并出现此错误:

注意:date_default_timezone_set(): Timezone ID '' is invalid in ....

编辑 1:

app.php:

'App' => [
    'namespace' => 'App',
    'encoding' => env('APP_ENCODING', 'UTF-8'),
    'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
    'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'Europe/Paris'),

bootstrap.php:

date_default_timezone_set(Configure::read('App.defaultTimezone'));

【问题讨论】:

  • 这表明Configure::read('Europe/Dublin') 正在返回一个空字符串。我想你想要更像Configure::read('timezone') 的东西。
  • @AlexHowansky 但我需要更改时间,因为默认情况下我的追逐是错误的..
  • Configure::read($key) 可能返回与键 $key 关联的配置值。您的配置文件没有名为 Europe/Dublin 的键。您需要使用正确的密钥并将其值设置为Europe/Dublin,或者硬编码date_default_timezone_set('Europe/Dublin')。前者是首选。
  • 如果你在 phpmyadmin 中运行SET time_zone = 'Europe/Paris';,它会起作用吗?
  • 如果在 phpmyadmin 中运行该语句失败,那么问题不在于 Cake,而在于您的 MySQL 安装。检查this

标签: php cakephp cakephp-3.0


【解决方案1】:

进入 config/app.php 并编辑 /change defaultTimezone

'App' => [
    'namespace' => 'App',
    'encoding' => env('APP_ENCODING', 'UTF-8'),
    'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
    'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'Europe/Berlin'), // <---- set your

config/bootstrap.php

date_default_timezone_set(Configure::read('App.defaultTimezone'));

【讨论】:

  • 对我不起作用,仍然出现同样的错误:一般错误:1298 未知或不正确的时区:'Europe/Paris'
  • 发布有问题的 app.php 的一部分,就像我的一样,还有 date_default_timezone_set
  • 服务器,php版本??
  • >> 我已经尝试过这段代码,并在 app.php 中留下了timezone =&gt; 'UTC' :????
  • 不,我改变了一切,但正如我所说,它给了我这个错误。我正在使用 CakePHP 3.8 和 phpmyadmin
猜你喜欢
  • 2012-02-14
  • 2022-11-04
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多