chi*_*t24 1 timezone laravel-4 php-carbon
entity我有一个带有表和表的数据库users。实体表具有created_at和 的字段updated_at。users 表有一个timezone默认值为 的字段America/Toronto。
在我看来,我可以使用以下代码以我想要的格式输出日期:
$entity->created_at->format('M j, Y \\a\\t g:i A')
Run Code Online (Sandbox Code Playgroud)
现在,如何使用用户表中的时区字段输出日期?就像是 ...
$entity->created_at->format('M j, Y \\a\\t g:i A', Auth::user()->timezone);
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种使用Carbon执行此操作的简单方法(因为我在 Laravel 中使用 Eloquent,它将把上面的日期列转换为 Carbon 的实例)。
注意:我只希望在显示日期时更改时区 - 我仍然希望所有日期都存储在数据库中的默认 UTC 时区中。
另外,我在哪里可以找到可用于 Carbon 的有效时区列表?我想将这些存储在我的数据库中,以便用户可以更改他们的默认时区。
您需要使用 Carbon 函数copy()来保持对象上的时区不变。然后您可以将时区设置为您想要的任何值并“输出”结果。
$entity->created_at->copy()->tz(Auth::user()->timezone)->format('M j, Y \\a\\t g:i A');
Run Code Online (Sandbox Code Playgroud)
至于时区 -它只是 PHP 时区。
$tzlist = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5329 次 |
| 最近记录: |