我正在研究一个项目并且遇到了一个奇怪的问题,
我最初有这个代码
public function create_visit($host_id,$type){
$ip=$this->ci->input->ip_address();
$visit=$this->ci->host_model->get_visit($host_id,$this->ci->input->ip_address());
if($visit->num_rows()>0){//already created
$date_week=new DateTime();
$date_week->modify('-1 weeks');
$visit_time=strtotime($visit->row()->create_date);
if($date_week->getTimestamp()<$visit_time){
$this->ci->input->set_cookie(COOKIE_PREFIX.'visit_id', $visit->row()->id, COOKIE_TIMEOUT);
return;
}
}
问题恰好在这一行if($date_week->getTimestamp()<$visit_time){
之后没有执行。它在xamp上运行良好,但在我的客户端服务器上运行不正常。
我做了一堆回声,最终发现了罪魁祸首,所以我将代码更改为
public function create_visit($host_id,$type){
$ip=$this->ci->input->ip_address();
$visit=$this->ci->host_model->get_visit($host_id,$this->ci->input->ip_address());
if($visit->num_rows()>0){//already created
$date_week=time()-604800;
$visit_time=strtotime($visit->row()->create_date);
if($date_week<$visit_time){
$this->ci->input->set_cookie(COOKIE_PREFIX.'visit_id', $visit->row()->id, COOKIE_TIMEOUT);
return;
}
}
它现在正在工作(只提到了改变了)但我真的想弄明白问题是什么..我使用codeigniter和hmvc插件,如果这有帮助......
答案 0 :(得分:1)
最可能的问题是服务器上的php版本。 {5.3}可以从php 5.3上获得getTimestamp
。