Php 如何形成zend_db_select语句来比较时间戳

Php 如何形成zend_db_select语句来比较时间戳,php,zend-framework,zend-db-select,Php,Zend Framework,Zend Db Select,这就是我想做的 id ip timestamp userid 9 127.0.0.1 2013-06-27 16:52:49 35 我想首先查询表,看看用户的ip是否被持久化。如果是,他/她投票2)对照当前时间戳检查投票时间戳,如果他的投票时间超过24小时,则允许他再次投票。确保他24小时只能投票一次 这是我当前的zend_db_select语句。逻辑上有问题吗 function checkIfCanLikeH($hlid,$ip){ $canl

这就是我想做的

 id ip        timestamp           userid
  9 127.0.0.1 2013-06-27 16:52:49 35
我想首先查询表,看看用户的ip是否被持久化。如果是,他/她投票2)对照当前时间戳检查投票时间戳,如果他的投票时间超过24小时,则允许他再次投票。确保他24小时只能投票一次

这是我当前的zend_db_select语句。逻辑上有问题吗

function checkIfCanLikeH($hlid,$ip){
    $canlike = false;
    $currenttime = time();
    $checkquery = $this->dbo->select()
       ->from("hl", array("num"=>"COUNT(*)"))
       ->where("hlid = ?", $hlid)
       ->where("ip = ?", $ip)
       ->where("timestamp < ".new Zend_Db_Expr('NOW()'));
    $this->dbo->setFetchMode(Zend_Db::FETCH_ASSOC);
    $checkrequest = $this->dbo->fetchRow($checkquery);
    if($checkrequest['num']!=0){
        $ip = true;
    }
    return $ip;
}
函数checkIfCanLikeH($hlid,$ip){
$canlike=false;
$currenttime=time();
$checkquery=$this->dbo->select()
->从(“hl”,数组(“num”=>“COUNT(*)))
->其中(“hlid=?”,$hlid)
->其中(“ip=?”,$ip)
->其中(“timestamp<”.new Zend_Db_Expr('NOW()));
$this->dbo->setFetchMode(Zend_Db::FETCH_ASSOC);
$checkrequest=$this->dbo->fetchRow($checkquery);
如果($checkrequest['num']!=0){
$ip=真;
}
返回$ip;
}
我对如何比较时间戳感到困惑。我需要从表中检索时间戳,并检查当前时间是否小于表中的值(添加24小时)

谢谢你的建议

->where("timestamp < DATE_SUB(NOW(), INTERVAL 1 DAY)");
这是同一件事,但写的方式不同。这意味着“时间戳+1天小于当前时间”

如果有帮助,请尝试在数据库上运行此查询:

SELECT DATE_ADD(timestamp, INTERVAL 1 DAY), NOW() FROM hl

因此,您可以看到MySQL中的
DATE\u ADD()
函数是如何工作的。

hi tim!谢谢你的回复。我想问一下如何从我的表列中获取时间戳值并向其添加1天。我需要将当前时间戳与时间戳(表中+1天)进行比较。我能在一个查询中完成吗?
SELECT DATE_ADD(timestamp, INTERVAL 1 DAY), NOW() FROM hl