如何选择不同时区的日期?

Posted

技术标签:

【中文标题】如何选择不同时区的日期?【英文标题】: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 变量。 您可以创建一个函数来转换时区。我更新了代码。 【参考方案1】:

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

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

【讨论】:

以上是关于如何选择不同时区的日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有时区的情况下发送 AngularStrap datepicker 值?

如何在日期选择器中禁用上一个日期

如何提供优雅的时区选择器?

如何按日期分组,考虑时区和 DST?

使用 joda time 将一个时区转换为另一个时区

材料日期范围选择器显示不正确的当前日期Android