如何在Laravel 4中更改输出日期的时区?



我有一个具有entity表和users表的数据库。实体表中有created_atupdated_at字段。users表中有一个timezone字段,默认值为America/Toronto

在我看来,我可以用以下代码以我想要的格式输出日期:

$entity->created_at->format('M j, Y \a\t g:i A')

现在,如何使用users表中的timezone字段输出日期呢?比如…

$entity->created_at->format('M j, Y \a\t g:i A', Auth::user()->timezone);

我正在寻找一个简单的方法来做到这一点与碳(因为我使用雄辩在Laravel,这将转换上述日期列到碳的实例)。

注意:我只希望在显示日期时更改时区-我仍然希望所有日期都存储在数据库中的默认UTC时区中。

另外,我在哪里可以找到可以与Carbon一起使用的有效时区列表?我想将这些存储在我的数据库中,以便用户可以更改他们的默认时区。

您需要使用Carbon函数copy()来保持对象上的时区不变。然后你可以把时区设置成任何你想要的,然后"输出"结果。

$entity->created_at->copy()->tz(Auth::user()->timezone)->format('M j, Y \a\t g:i A');

至于时区-它只是PHP的时区。

$tzlist = DateTimeZone::listIdentifiers(DateTimeZone::ALL);

相关内容

  • 没有找到相关文章

最新更新