【问题标题】:gmdate() returning 2 different results in 2 different controllers (codeigniter)gmdate() 在 2 个不同的控制器(codeigniter)中返回 2 个不同的结果
【发布时间】:2014-02-04 21:13:34
【问题描述】:

我有一种情况,我在两个不同的 codeigniter 控制器中使用 php 函数 gmdate()。控制器以完全相同的调用返回 6 小时的差异。

下方是返回正确 GMT 日期的控制器,下方是 6 小时休息的控制器。希望这只是我在某个地方的疏忽。提前感谢您的帮助。

    public function update_current_user($session_id){
    $this->load->helper('date');
    $this->load->helper('url');

    $currentURL = base_url().uri_string();

    $updateData = array(
            'id'=>$session_id   ,
            'last_updated'=>gmdate("Y-m-d H:i:s",time()),   
            'current_url'=> $currentURL
        );
    $this->db->where('id',$session_id);
    $this->db->update('current_visitors', $updateData);
    return true;
}

下面是返回 6 小时休息的那个。

    public function initiate_chat($id,$name)
{
    $this->load->helper('date');
    $this->load->helper('url');

    $currentURL = base_url().uri_string();

    $updateData = array(
            'id'=>$id   ,
            'last_updated'=>gmdate("Y-m-d H:i:s",time()),
            'chat_requested_time'=>gmdate("Y-m-d H:i:s",time()),    
            'requested_chat'=>1,    
            'name'=>$name,
        );
    $this->db->where('id',$id);
    $this->db->update('current_visitors', $updateData);
    return $name;           
}   

【问题讨论】:

  • 控制器中是否有任何 date_default_timezone_set,可能会被丢弃?如果没有,您可以尝试在每个控制器中放置一个,将其设置为正确的时区,看看是否有任何不同
  • 我没有 date_default_timezone_set 在其中任何一个。但是我只是把它放在他们两个中,现在他们显示出一致的结果。感谢您的帮助!

标签: php codeigniter


【解决方案1】:

设置,默认时区 date_default_timezone_set('GMT'); 到一个值,你会得到相同的值。或者在您要使用日期/时间函数的地方使用它。 例如:

date_default_timezone_set('GMT');
$curTime = gmdate('H:i:s',time());

它将返回当前时间,时区设置为 GMT。

【讨论】:

    【解决方案2】:

    这是与 Codeigniter 和 PHP 5 相关的问题。

    你应该在你的 php.ini 文件中设置一个默认时区,或者你可以使用 Phil Sturgeon 提供的解决方案,否则你每次使用日期/时间函数都会遇到这个问题

    http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-on-PHP-5.3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多