我想把今天的任何一张唱片都录下来。对某些人来说,明天和昨天没有任何价值。如果我删除ctime它们的值是从strtotime()派生的日期的字符串表示。我做错什么了?
菲律宾比索:

public function fetchToday()
{
    $tomorrow  = strtotime(mktime(0, 0, 0, date("m")  , date("d")+1, date("Y")));
    $yesterday  = strtotime(mktime(0, 0, 0, date("m")  , date("d")-1, date("Y")));
    $q = "SELECT * FROM $this->_table WHERE ctime < $tomorrow AND ctime > $yesterday";
    return $this->fetchBySelect($q);
}

错误:
mktime
PostrgeSQL表字段:
strtotime
查询:
ModelFactory - 'ERROR: syntax error at or near "AND"LINE 1: SELECT * FROM motd WHERE ctime < AND ctime >
`

最佳答案

到目前为止,所有的答案都集中在php方面,但另一方面,我认为正确的解决方案是使用PostgreSQL特性,并将php代码更改为:

public function fetchToday()
{
    $q = "SELECT * FROM $this->_table WHERE ctime < 'tomorrow'::timestamptz AND ctime > 'yesterday'::timestamptz;";
    return $this->fetchBySelect($q);
}

关于php - 日期字符串不会转换为时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17352767/

10-12 05:29