繁体   English   中英

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

[英]Should I keep Laravel UTC as Laravel Timezone?

Laravel 文档说

... 强烈建议您始终使用这种序列化格式,并将应用程序的日期存储在 UTC 时区中,方法是不要更改应用程序的时区配置选项的默认 UTC 值。 ...

我很困惑,我应该如何/何时更改日期的时区? 我知道如果我将 UTC 日期传递给 javascript 它将被转换为用户的时区(使用 new Date(),对吗?)但是如果我要直接向用户显示数据而不通过 javasacript 呢? (就像刀片页面,生成 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 的一些原因,

我相信还有更多,如果您知道,请随时发表评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM