我有一个过滤器来选择数据。在查询中有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'
但不知道如何编码。
答案 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中。