在我的项目中有时区下拉(PT,CST等),当管理员从下拉列表中更改时区时,管理面板会反映所选下拉列表的时区。
如何根据所选选项更改Config / app.php" timezone"(应用程序时区)。
答案 0 :(得分:4)
您还需要致电date_default_timezone_set
config(['app.timezone' => $timezone]);
date_default_timezone_set($timezone);
答案 1 :(得分:3)
您可以使用Laravel辅助函数config
来设置时区。但是,这只会影响您将收到的请求。
config(['app.timezone' => $timezone]);
如果您的目标是更改时区并在每个请求上运行,那么将更改的时区保存在数据库或文件中会怎么样。然后,编写DB查询或读取app / config.php中的文件,并在文件中更改索引时区的值。
例如(文件示例):
当您更改时区时,它会保存在文件中。
file_put_contents("path/to/file", $timezone);
而且,在app/config.php
$timezone= file_get_contents("path/to/file");
return [
. . .
'timezone' => $timezone,
. . .
]
答案 2 :(得分:2)
如果要为将来的所有请求保留新的时区,则需要使用larapack/config-writer这样的包来将时区保存到app
配置文件。
另一种处理此问题的方法是在DB中保留时区,在每个请求中获取时区并动态设置config(['app.timezone' => $timezone])
。
答案 3 :(得分:2)
您可以使用middleware
来实现这一目标,无论您采用哪种路线提及所有应用该中间件的路线。
您可以从数据库中获取该数据并按如下所示应用它,
config('app.timezone', 'your selected timezone')