gpt4 book ai didi

php - Laravel 设置和获取 UTC 时间

转载 作者:行者123 更新时间:2023-12-05 04:16:53 38 4
gpt4 key购买 nike

我在 app.php 中设置了 'timezone' => 'UTC' ...我们的数据库以 UTC 存储日期时间..我们无权访问数据库配置...所以我们必须从应用程序端进行更改..目前它的存储值只是 2014-09-11 00:00:00 我从 calender 中选择的内容..理想情况下我正在尝试解决这个问题

当我从 singapore UTC+8 插入日期时,它应该存储为

'enterdate+8' 2014-09-11 08:00:00 in database.. 

类似地,当我从 japan utc+9 插入日期时,它应该存储

'enterdate+9' 2014-09-11 09:00:00 in database

但是当用户搜索 2014-09-11 08:00:00 时,它应该被转换为本地时间...类似于 2014-09-11 00:00:00

要在 Laravel 4 中解决这个问题吗?

最佳答案

使用您现有的优质Carbon:

// for Eloquent
$dateFromDbInLocal = $model->created_at->tz('USER_TIMEZONE');

// for any timestamp
$dateFromDbInLocal = with(new Carbon\Carbon($timestampUTC))->tz('USER_TIMEZONE');

// other way around:
$dateInLocal = new Carbon\Carbon($timestampLocal, 'USER_TIMEZONE');
$dateInUtc = $dateInLocal->tz('utc');

例子:

$now = Carbon\Carbon::now(); // utc 2014-09-10 08:24:50

$japanUser = User::find($someId);
$japanUser->created_at->tz('Japan'); // 2014-09-10 17:24:50

如果您的应用程序与数据库在同一时区运行,则您实际上不需要在保存时转换任何内容。只需在表示层执行此操作,以便用户可以读取格式化为他的时区的日期。

关于php - Laravel 设置和获取 UTC 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25758117/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com