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

Laravel 4 如何更改Laravel 4中输出日期的时区?,laravel-4,timezone,php-carbon,Laravel 4,Timezone,Php Carbon,我有一个带有实体表和用户表的数据库。实体表中有在处创建的字段和在处更新的字段。用户表有一个时区字段,默认值为美国/多伦多 在我看来,我可以使用以下代码以我想要的格式输出日期: $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()

我有一个带有
实体
表和
用户
表的数据库。实体表中有在处创建的
字段和在
处更新的
字段。用户表有一个
时区
字段,默认值为
美国/多伦多

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

$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中使用了Elount,它将把上面的日期列转换为碳的实例)

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


此外,我在哪里可以找到一个有效的时区列表,可以与碳一起使用?我想将它们存储在我的数据库中,以便用户可以更改其默认时区。

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

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


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

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


太好了,这正是我需要的!嗨,我使用的是laravel 5.1,当我尝试你的解决方案时,它不起作用。它仍然显示原始日期时间:(.完美,这正是我需要的!嗨,我使用的是laravel 5.1,当我尝试你的解决方案时,它不起作用。它仍然显示原始日期时间:(。