检索日期并根据用户时区将其转换为特定时区
Posted
技术标签:
【中文标题】检索日期并根据用户时区将其转换为特定时区【英文标题】:Retrieve date and convert it to specific time zone according to user time zone 【发布时间】:2020-07-18 13:33:00 【问题描述】:我想从数据库(s_start)中检索日期并根据数据库中的用户时区(s_timezone)将其转换为特定时区,如(非洲/开罗)我只能检索存储在数据库中的原始日期,我无法转换结果我的控制器代码:
$this->db->select('s_id');
$this->db->select('s_start');
$this->db->from('sessions');
$query = $this->db->get($this->event);
if ($query)
return $query->result();
return NULL;
html代码:
<div id="cal-slide-content" class="cal-event-list">
<ul class="unstyled list-unstyled">
<% _.each(events, function(event) %>
<li>
<span class="pull-left event <%= event['s_start'] %>">
</span>
<a href="" data-event-id="<%= event.id %>"
data-event-class="<%= event['class'] %>" class="event-
item">
<%= event.s_start %> <%= event.u_timezone %>
(<%= event.u_name %>)
</a>
</li>
<% ) %>
</ul>
【问题讨论】:
以 UTC 格式保存日期时间。当用户登录时,获取当前时区并据此显示 嗨,我现在无法在所有应用程序中更改为 utc。当前状态是用户可以查看存储在数据库中的时区日期,但我希望管理员也可以查看管理员时区的日期,如何我做到了 看看这是否有帮助***.com/questions/2095703/php-convert-datetime-to-utc 不适合我 【参考方案1】:$date = new DateTime($result->s_start, new DateTimeZone($result->s_timezone));
$date->setTimezone(new DateTimeZone('Africa/Cairo'));
echo $date->format('Y-m-d H:i:sP') ;
资源
DateTime class DateTimeZone class编辑控制器中用于转换时区的函数。
public function _convert_time($result)
$date = new DateTime($result->s_start, new DateTimeZone($result->s_timezone));
$date->setTimezone(new DateTimeZone('Africa/Cairo'));
return $date->format('Y-m-d H:i:sP') ;
现在您可以回显结果
foreach($results as $result)
echo $this->_convert_time($result);
【讨论】:
我可以使用mysql触发器在不同时区转换和保存时区而不用php编码 对不起,我对mysql不太了解。 :(以上是关于检索日期并根据用户时区将其转换为特定时区的主要内容,如果未能解决你的问题,请参考以下文章