我想把今天的任何一张唱片都录下来。对某些人来说,明天和昨天没有任何价值。如果我删除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/