我正在尝试使用 ctime
获取任何记录今天的。由于某些原因,&tomorrow 和 &yesterday 没有任何值。如果我删除 strtotime()
它们的值是从 mktime
派生的日期的字符串表示形式.我在做什么错 strtotime
?
PHP:
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);
}
错误:
ModelFactory - 'ERROR: syntax error at or near "AND"
LINE 1: SELECT * FROM motd WHERE ctime < AND ctime >
PostrgeSQL 表字段:
ctime timestamp(0) with time zone
查询:
SELECT * FROM motd WHERE ctime < 1372402800 AND ctime > 1372230000;
`
最佳答案
到目前为止,所有答案都集中在 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/