萌新,刚刚正式接触微开三天(之前做网站的),今天在将access_token存储的时候出现了个奇葩问题。。
以下是代码:    //检查access_token合法性并返回
    public function gettoken(){
        $accessToken=M('accesstoken');
        $time=time();
        // var_dump($time);
        // var_dump($time=date('Y-m-d H:i:s'));
   
        $sqltoken=$accessToken->where('A_ID=0')->getfield('A_Token');
        if(empty($sqltoken)){//若数据为空,将微信获取的access_token存入数据库中
            $geturl=$this->geturl();
            $expires=$geturl['expires_in'];
            $timestamp=$time+$expires;
            // var_dump($timestamp);
            // var_dump($timestamp=date('Y-m-d H:i:s'));
            // die();            
            $data['A_Date']=$timestamp;
            $data['A_Token']=$geturl['access_token'];
            $accessToken->add($data);            return $geturl;        }else{//检测数据库中access_token的时效性
            if($sqltoken<$time){
                $geturl=$this->geturl();
                $expires=$geturl['expires_in'];
                $timestamp=$time+$expires;
                $data['A_Date']=$timestamp;
                $data['A_Token']=$geturl['access_token'];
                $accessToken->data($data)->where('A_ID=0')->save();                return $geturl;
            }else{//若access_token合法则从数据库中获取并输出
                $succ=$accessToken->where('A_ID')->select();
                // var_dump($succ);
                $geturl=json_encode($succ);                return $geturl;
            }
        }
    }
可以看到,$times是当前时间,$expirese为微信返回的时间,$timestamp为二者之和。但是我打印$timestamp时却是当前时间导致存入数据库的时间都是当前时间,每次运行这个的时间,就是相当于调用一个新的access_token了
这到底是怎么产生的呢?真的很好奇,明明已经加了一个$expires,但是就是现实当前时间