【问题标题】:How to select date in different timezone?如何选择不同时区的日期?
【发布时间】:2020-07-25 07:13:27
【问题描述】:

我想根据存储在数据库中的时区将查询结果中的日期转换为(非洲/开罗)时区 例如,我想获取 (s_start) 并将其从 (Europe/London) 转换为 (Africa/Cairo),但在选择查询本身中(因为我从查询结果 event.start 打印事件日期)。 我的控制器:

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class EventCalendar_model extends CI_Model {

function get_event_list() {
$aa = ($this->session->userdata(id));

$this->db->select('s_timezone,u_name,s_id,s_student,s_tutor, 
UNIX_TIMESTAMP(s_start)*1000 as start ');    
$this->db->select('s_start as start');    

$this->db->from('sessions');
$this->db->where("s_tutor", $aa );

$this->db->join('users', 'sessions.s_student = users.u_id');

$query = $this->db->get($this->event);

    if ($query) {
        return $query->result();



    }
    return NULL;
  }



}

【问题讨论】:

  • this answer 呢?
  • 我的问题正在使用 jquery 事件日历,它从查询结果中获取 s_start 并在 js 函数中回显它,所以我需要从查询结果中回显转换后的时区 s_start 我无法回显像 $date 这样的 php 变量。
  • 您可以创建一个函数来转换时区。我更新了代码。

标签: php mysql codeigniter datetime


【解决方案1】:

希望以下查询对您有所帮助。

SELECT UNIX_TIMESTAMP(CONVERT_TZ(`s_start`, '+02:00', @@session.time_zone)) as africa_cario_time FROM `table_name`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2015-01-25
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多