Laravel Carbon returns 时间不正确
Laravel Carbon returns incorrect time
我正在开发的 Laravel 应用程序有问题,returns 时间不正确,我确实在 config/app.php
和 php.ini
上指定了时区] 文件,我确实使用以下命令清除了 Laravel 上的缓存:
php artisan cache:clear
php artisan view:clear
php artisan config:cache
此外,我在更改 php.ini
文件中的时区后重新启动了 PHP 服务。
我正在使用 XAMPP 作为服务器。
请注意:唯一正确的时间是使用纯 php 函数!
谁能帮我解决这个问题?
时间正确:字符串末尾的Z
表示GMT
(祖鲁时区)。
当 Carbon 实例在 JSON 响应中输出时,它总是转换为 ISO-8601 字符串并以 GMT 时区给出,因为这是在系统之间交换日期信息的标准且非常推荐的方式(所以在 JSON API 中)。如果您尝试在浏览器中传递 new Date('2020-08-20T06:46:34.407Z')
,您会看到浏览器自动将其转换为用户时区。
如果你尝试:
Carbon::now()->format('Y-m-d H:i:s.u')
您会看到它使用您选择的时区。你也让它出现在输出中:
Carbon::now()->format('Y-m-d H:i:s.u e')
所以 system/browser 在不同的时区不会搞砸。
仍然最好的做法是在您的服务器端使用 UTC,并且只在最后一刻使用 Asia/Riyadh 当您想要显示您知道在该时区的特定用户的日期时。
我在这里更详细地解释了它:https://medium.com/@kylekatarnls/always-use-utc-dates-and-times-8a8200ca3164
我正在开发的 Laravel 应用程序有问题,returns 时间不正确,我确实在 config/app.php
和 php.ini
上指定了时区] 文件,我确实使用以下命令清除了 Laravel 上的缓存:
php artisan cache:clear
php artisan view:clear
php artisan config:cache
此外,我在更改 php.ini
文件中的时区后重新启动了 PHP 服务。
我正在使用 XAMPP 作为服务器。
请注意:唯一正确的时间是使用纯 php 函数!
谁能帮我解决这个问题?
时间正确:字符串末尾的Z
表示GMT
(祖鲁时区)。
当 Carbon 实例在 JSON 响应中输出时,它总是转换为 ISO-8601 字符串并以 GMT 时区给出,因为这是在系统之间交换日期信息的标准且非常推荐的方式(所以在 JSON API 中)。如果您尝试在浏览器中传递 new Date('2020-08-20T06:46:34.407Z')
,您会看到浏览器自动将其转换为用户时区。
如果你尝试:
Carbon::now()->format('Y-m-d H:i:s.u')
您会看到它使用您选择的时区。你也让它出现在输出中:
Carbon::now()->format('Y-m-d H:i:s.u e')
所以 system/browser 在不同的时区不会搞砸。
仍然最好的做法是在您的服务器端使用 UTC,并且只在最后一刻使用 Asia/Riyadh 当您想要显示您知道在该时区的特定用户的日期时。
我在这里更详细地解释了它:https://medium.com/@kylekatarnls/always-use-utc-dates-and-times-8a8200ca3164