检索日期并根据用户时区将其转换为特定时区

检索日期并根据用户时区将其转换为特定时区

本文介绍了检索日期并根据用户时区将其转换为特定时区的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从数据库(s_start)检索日期并将其根据用户时区从数据库(s_timezone)转换为特定时区,例如(非洲/开罗)我只能检索存储在数据库中的原始日期,而我不能转换结果我的控制器代码:

i want retrieve date from database(s_start) and convert it to Specific time zone like (Africa/Cairo) according to user time zone from database (s_timezone) i can only retrieve orginal date stored in database and i can't convert the result My controller code :

$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>&nbsp;
            <a href="" data-event-id="<%= event.id %>"
                data-event-class="<%= event['class'] %>" class="event-
              item">
                <%= event.s_start %>&nbsp;<%= event.u_timezone %>&nbsp;
                (<%= event.u_name %>)&nbsp;
                 </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') ;

资源

  • DateTime class
  • DateTimeZone class

编辑控制器中的一项功能,用于转换时区.

Edit A function in the controller to convert timezones.

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);
}

这篇关于检索日期并根据用户时区将其转换为特定时区的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-11 22:51