artisan tinker 输出时间差 8 小时,已设置 cli php.ini 和 config/app.php 的 timezone=PRC 你们有遇到吗?
第一:系统时间肯定是正确的。
第二:cli 模式设置了 php.ini 时间区 data.timezone = 'PRC'; 其实 fpm php.ini 也同样设置了 http 访问没问题。
第三:laravel 框架本身 timezone=‘PRC’;
第四:单独用命令行运行 php 文件时间正确;
问题:用 php artisan tinker 包括其他命令如 queue 等等,只要是 artisan 下运行~时间就不对。
发现一:在 tinker 单独设置 date_default_timezone_set (PRC); 时间正常。单独在 Console/Command 设置时区也正确, 但是我不可能每个 Command 都设置时间吧。
在 http 访问或者 php 命令行访问
use Carbon\Carbon;
echo Carbon::now()->toDateTimeString();//时间正常
echo date_default_timezone_get();//返回PRC
在 tinker 或者其他 artisan 命令中都错
use Carbon\Carbon;
echo Carbon::now()->toDateTimeString();//时间差8小时
echo date_default_timezone_get();//返回Etc/GMT+0
推荐文章: