日期的多个用法默认时区设置在Laravel



我继承了一个用PHP/Laravel编写的项目,该项目使用以下方式获取相对于用户时区的时间。

date_default_timezone_set($user->timezone);
$hour = date("H")
date_default_timezone_set('UTC');

由于这设置了所有php的默认时区,因此如果该代码的两个实例非常接近地运行,这似乎可能会导致代码在错误的用户时区运行时出现问题。

这是否有可能像我认为的那样影响其他代码?

有没有更好的方法来做到这一点,或者一开始就很糟糕?

我建议使用Carbon作为日期。

然后你可以根据用户的时区创建日期,如下所示:

Carbon::now()
->tz($user->timezone);

最棒的是,时区只为该日期设置,因此不会干扰其他PHP代码。

最新更新