Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 流明时区问题_Php_Laravel_Datetime_Lumen - Fatal编程技术网

Php 流明时区问题

Php 流明时区问题,php,laravel,datetime,lumen,Php,Laravel,Datetime,Lumen,我有一个问题,我在Lumen的配置中将时区设置为欧洲/伦敦。在最近更改为DST之前,它一直工作得很好,在DST中,它设置了正确的创建日期和更新日期,但当我调用记录时,它显示的日期时间好像是UTC而不是BST/DST 在我的config/app.php文件中 ... timezone' => 'Europe/London', ... 在我的检查路线中,我有 $app->get('mytime', function() { $now = Carbon\Carbon::now

我有一个问题,我在Lumen的配置中将时区设置为欧洲/伦敦。在最近更改为DST之前,它一直工作得很好,在DST中,它设置了正确的创建日期和更新日期,但当我调用记录时,它显示的日期时间好像是UTC而不是BST/DST

在我的config/app.php文件中

...

timezone' => 'Europe/London',

...
在我的检查路线中,我有

$app->get('mytime', function() {
    $now = Carbon\Carbon::now();
   dd($now, date('Y-m-d H:i:s'));
});
返回

Carbon {#35 ▼
  +"date": "2016-04-14 10:33:15.000000"
  +"timezone_type": 3
  +"timezone": "Europe/London"
}
然而,当我提取一个记录,上面写着应该在“2016-04-14 10:00:00”的日期创建一个_,它返回“2016-04-14 09:00:00”


如果您在时区问题上有任何帮助,我们将不胜感激

我找到了解决方案。结果表明,在Lumen中,有一个变量需要添加到处理数据库的.env文件中

DB_TIMEZONE=+01:00

您可能需要添加一个cron作业,以便在与DST之间的更改中更新该变量,因为“Europe/London”不受支持

我也尝试了许多解决方案。因此,结论是:

只需在
.env

e、 g。
因此,在2016-04-14 10:00:00进行输入,显示2016-04-14 15:00:00,然后在.env中设置
DB_时区=+05:00
。您也可以使用
DB_时区=null
来保持服务器时区(可能已经同步到
欧洲/伦敦