php - 日期字符串不会转换为时间戳

标签 php postgresql timestamp string-conversion

我正在尝试使用 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/

相关文章:

php - 传递一个字符串作为参数

postgresql - 如何通过 .sh 文件添加 Postgres 扩展

javascript - 如何从具有多个时间戳的数组中每天显示一次日期

postgresql - postgres - 使用和不使用 TIMEZONE 参数设置显示时间戳列

php - 来自 mySQL 的 PHP 电子邮件中的换行符

javascript - uppy 如何从 Dashboard 添加 metaFields 到 XHRUpload

sql - Postgres - 也许是交叉表?

python - Django: NotImplementedError: annotate() + distinct(fields) 未实现

java - Joda 日期时间问题与年份

php - 注意 : provisional header are shown