我已经在我的应用程序中设置了动态时区,但它显示错误的结果。这里是我的代码Dynemically时区不在laravel工作
$timezone = [
'asia_calcutta_time' => 'Asia/Calcutta',
'europe_madrid_time' => 'Europe/Madrid',
'us_eastern_time' => 'US/Eastern'
];
foreach ($timezone as $timeKey => $timeValue) {
\Config::set('app.timezone', $timeValue);
echo $timeValue . "<br>Seted time zone => ";
echo \Config::get('app.timezone') . "<br>";
print_r(new \DateTime('now'));
print_r("<br>");
}
我的输出
Asia/Calcutta
Seted time zone => Asia/Calcutta
DateTime Object ([date] => 2017-07-05 14:51:41.000000 [timezone_type] => 3 [timezone] => Asia/Calcutta)
Europe/Madrid
Seted time zone => Europe/Madrid
DateTime Object ([date] => 2017-07-05 14:51:41.000000 [timezone_type] => 3 [timezone] => Asia/Calcutta)
US/Eastern
Seted time zone => US/Eastern
DateTime Object ([date] => 2017-07-05 14:51:41.000000 [timezone_type] => 3 [timezone] => Asia/Calcutta)
在这里,我已设置使用\Config::set('app.timezone', $timeValue);
和时区的时候,我得到使用\Config::get('app.timezone');
那么它的完美展现,但是当我打印的日期时间对象,然后它是显示不同的时区时区后,所以我该如何解决这个问题。我也尝试清除缓存后,清除编译,清除配置,清除路由,清除视图,但它没有显示正确的结果
我觉得我个人遇到的问题与使用'配置::集()'有时候。函数第一次被调用是最后一次工作。你有没有试过一个黑客例如只设置一次,看看它是否打印正确的结果?你也许想用'date_default_timezone_set('Europe/Madrid');' –
'运行一下测试,谢谢,我已经试过'date_default_timezone_set('Europe/Madrid');'它正在工作,但我想改变时区通过laravel的方式没有核心的PHP方式 – Tester