我应该将 Laravel UTC 保留为 Laravel 时区吗?

Should I keep Laravel UTC as Laravel Timezone?

Laravel documentation says :

... You are strongly encouraged to always use this serialization format, as well as to store your application's dates in the UTC timezone by not changing your application's timezone configuration option from its default UTC value. ...

我很困惑,how/when我应该更改日期的时区吗?我知道如果我将 UTC 日期传递给 javascript,它会被转换为用户的时区(使用 new Date(),对吧?)但是如果我要直接向用户显示数据而不经过javascript? (比如 blade 页面,生成 pdf ...),我如何确保整个应用程序的时区相同?我知道 Carbon 可用于转换日期时区,但我不想每次都手动进行转换,我应该添加自定义配置变量还是有更好的方法来做到这一点?

时区应在以下时间更改:

  • 到用户时区:当您显示日期时
  • 到 UTC:当您从用户输入中获取日期时

我个人为此使用宏

Carbon::macro('toUTC', fn() => $this->setTimezone('UTC'));
Carbon::macro('toUserTimezone', fn(?User $user = null) => $this->setTimezone('Europe/Zurich'));

那我就这样用

{{ $date->toUserTimezone()->isoFormat('LL') }}

对此的附注:

鼓励使用 UTC 的一些原因,

我确定还有更多内容,如果您知道,请随时发表评论。