在Lumen或Laravel 5中更改时区

问题描述 投票:28回答:10

我正在使用流明框架。如何将时区更改为欧洲/巴黎CEST?

我在qazxsw poi文件中添加了一个变量:

.env

但这不起作用。更新时区的正确方法是什么?

php laravel-5 lumen
10个回答
78
投票

您可以通过在APP_TIMEZONE=Europe/Paris 文件夹中配置app.php文件来设置应用时区。

要更改时区,请在app.php文件中修改时区的值。

这是本节的内容

config

对我来说,我使用亚洲/达卡作为我的申请时区。

这是适当的语法:

|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|

PHP 5的'timezone' => 'Asia/Dhaka' 列表

希望这会有所帮助。


0
投票

对我来说,app.php在这里是'timezone' => 'Africa/Nairobi', ,但我也可以从/vendor/laravel/lumen-framework/config/app.php文件更改它,它可以设置为.env(PHP原始文档here)列出的任何值。


15
投票

有两种方法可以更新代码。 1.请在项目的lool中打开config目录中的文件app.php文件。在页面下方查看您将找到的应用程序时区

timezones

在这里你可以添加你的时区

'timezone' => 'UTC',

如果您想从'timezone' => 'Europe/Paris', 文件管理您的时区,那么您可以在.env文件中添加以下代码。

config.php

并在'timezone' => env('APP_TIMEZONE', 'UTC'), 文件中添加以下行。

.env

请查看以下链接以获取更多信息:APP_TIMEZONE='Europe/Paris'


6
投票

请尝试这个 - 在你的流明设置中创建一个目录'config',然后在这个'config'目录中创建app.php文件。它看起来像这样 -

https://laravel.com/docs/5.6/configuration#accessing-configuration-values

然后你可以在任何地方访问它的价值 -

<?php return ['app.timezone' => 'America/Los_Angeles'];

如果它不起作用,您可以在routes.php中添加此行

$value = config('app.timezone');

这对我有用!


4
投票

在我的情况下(从Lumen 5.1项目的MySQL数据库中读取日期)唯一有效的解决方案是使用date_default_timezone_set('America/Los_Angeles'); 来设置变量的时区:

Carbon 

$carbonDate = new Carbon($dateFromDBInUTC); $carbonDate->timezone = 'America/New_York'; return $carbonDate->toDayDateTimeString(); // or $carbonDate->toDateTimeString() for ISO format 文件中使用DB_TIMEZONE=-05:00几乎可以工作但不处理DST更改。

.env文件中使用APP_TIMEZONE=America/New_York对从MySQL数据库中的Lumen 5.1 webapp中检索的时区值没有影响,但它适用于Lavarel 5.1。

Lumen也没有阅读我创建的所有.env文件(当我在那里输入语法错误时它没有抱怨)。

使用[lumen_project]/config/app.php也不起作用。


4
投票

转到config - > app.php并更改'timezone'=>'Asia / Jakarta',

(这是我的时区)


3
投票

你只需要在config目录中编辑de app.php文件就可以找到下一行

date_default_timezone_set

而且......改变它:

/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/

'timezone' => 'UTC',

3
投票

在Lumen的.env文件中,指定时区。对于印度来说,它会像:

'timezone' => 'Europe/Paris',

3
投票

更改app.php后,请确保运行:

APP_TIMEZONE = 'Asia/Calcutta'
DB_TIMEZONE = '+05:30'

这是清除配置设置缓存所必需的。如果您在更改app.php文件中的时区后发现时间戳仍然存在错误,则运行上述命令应刷新所有内容,并且新时区应该有效。


1
投票

使用php手册 php artisan config:cache 的php时区

例如,我从config / app.php中的UTC值改为

Php time zones
© www.soinside.com 2019 - 2024. All rights reserved.