Retrieve date and convert it to specific time zone according to user time zone

泄露秘密 提交于 2020-05-12 08:36:10

问题


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 code :

          <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>

}


回答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') ;

Resources

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

Now you can echo the result

foreach($results as $result){
    echo $this->_convert_time($result);
}


来源:https://stackoverflow.com/questions/61061720/retrieve-date-and-convert-it-to-specific-time-zone-according-to-user-time-zone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!