【发布时间】:2022-07-06 02:39:28
【问题描述】:
我在数据库中有一个名为
USERSHIFTS
的表,它有两个
TIME
类型的列以及其他列,第一个是
start_time
,第二个是
end_time
,两者都有
TIME datatype
。我不允许将这些列类型更改为
datetime or timestamp
。并且也不允许在表中创建另一列。现在我的任务是根据用户
timezone
显示已存储在
start_time
和
end_time
列中的时间,例如
UTC
timezone
用户应该能够根据
UTC
时区和其他时区用户进行计时按照他的时区应该也能看到这个时间。
现在的问题是我应该如何在数据库中存储时间以及我应该在哪个时区存储时间。最后一个问题是我应该如何根据不同的时区显示时间。
我尝试了以下代码,但您可以看到我必须处理日期才能执行此操作。而且我不想约会。
$s_time=date('Y-m-d '.$shift->start_time.'');
$start_time = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $s_time, 'UTC');
$e_time=date('Y-m-d '.$shift->end_time.'');
$end_time = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $e_time, 'UTC');