【发布时间】: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');
【问题讨论】:
标签: php laravel datetime utc php-carbon