laravel中不同地区的时间戳()?

时间:2014-09-13 13:42:48

标签: php laravel timestamp

我想知道我是否可以将IST用于我的laravel应用程序,因为我的应用程序是针对该区域的,默认的时间戳()值不起作用?怎么接近?或者这样做不可能吗?

1 个答案:

答案 0 :(得分:1)

@lxg是正确的:将您的时间以UTC格式存储在数据库中。这样做可以根据需要更轻松地将时间转换为来自不同时区的时间,而不必担心是否应该应用夏令时等事项。

要转换它们,只需将accessors添加到模型中,即可在访问数据时自动更改数据:

// app/models/SomeModel.php
public function getCreatedAtAttribute($value)
{
    return Carbon::createFromTimestamp(strtotime($value))
        ->timezone('Asia/Mumbai')
        ->toDateTimeString()
    ;
}

这可以让你做几件事:

  1. 在不更改当前存储的任何数据的情况下更改时区会很容易
  2. 您可以引入逻辑来确定要转换为的时区而不是硬编码(例如,如果您存储用户特定的时区,您将能够轻松地在其本地时区显示时间信息)。
  3. 这些当然只是以UTC格式存储时间时获得的subset of the benefits