如何在where子句中添加一个小时?

时间:2017-07-03 08:38:05

标签: sql postgresql yii2

我有一个过滤器来选择数据。在查询中有WHERE子句

if ($this->date_begin) {
            $query->andFilterWhere(['>=', 'date_begin', $this->date_begin]);
        }

所以我从任何日期对数据进行排序(如果我选择01-01-2000 18:00:00它显示来自此日期时间的数据)。 现在我需要通过添加一小时来改变我的时区(例如,我输入01-01-2000 18:00:00,但它应该显示01-01-2000 19:00:00的数据)。 我需要一些东西

 $this->date_begin+'1 hour' 

但不知道如何编码。

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用strtotime() php函数:

date("Y-m-d H:i:s", strtotime($this->date_begin . ' +1 hour'))

以Yii风格

\Yii::$app->formatter->asDatetime(\Yii::$app->formatter->asTimestamp('2017-12-12 10:00:00 +1 hour'))

但正如Rafal Ziolkowski在评论中所说,由于时区问题,您应该将此日期转换并存储在UTC中。