php - 检索日期并根据用户时区将其转换为特定时区
问题描述
我想从数据库(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>
}
解决方案
$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') ;
资源
编辑控制器中用于转换时区的函数。
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);
}
推荐阅读
- r - 如何加快代码执行双重求和
- mysql - 如何计算一个表中所有唯一 ID 总和与另一表中所有唯一 ID 总和在特定时期的每一天的百分比?
- android - 为什么 Firebase childEventListener 不能与一个引用一起工作而与另一个引用一起工作?
- ios - 从 pdf 数据中提取单个页面(或页面范围)而不加载整个 pdf(有时会占用太多 RAM)
- ios - Firebase 数据库 Permission denied 使用 swift 4.2 面临的错误
- containers - Service Fabric Container API 未在端点上加载
- bash - expr 和 if 在 bash
- javascript - Ajax History API 默认内容
- css - Bootstrap 4 缩略图中的浮动右侧元素的工作方式与 Bootstrap 3 不同
- jupyter-notebook - 谷歌 colab 打不开