我有一种情况,我在两个不同的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;
}
答案 0 :(得分:1)
设置,默认时区 date_default_timezone_set(' GMT&#39); 如果是一个值,你将获得相同的价值。或者在您要使用日期/时间功能的地方使用它。 例如:
date_default_timezone_set('GMT');
$curTime = gmdate('H:i:s',time());
它将返回当前时间,时区设置为GMT。
答案 1 :(得分:0)
这是与Codeigniter和PHP 5相关的问题。
您应该在php.ini文件中设置默认时区,或者您可以使用Phil Sturgeon提供的解决方案,否则每次使用日期/时间函数时都会遇到此问题
http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-on-PHP-5.3