以下表达式
$datetime = new \DateTime('2016-06-02 19:30:17', new \DateTimeZone('America/Tijuana'));
$datetime->setTimezone(new \DateTimeZone('GMT'));
正在返回2016-06-03 02:30:17.000000
(请注意,输入中不存在输出0)。
因此,在Yii2的查询构建中,由于尾随0,无法进行针对db datetime列的查询,如下所示。
->andFilterWhere(['created_at' => $this->datetime->format('php:Y-m-d H:i:s')]);
为什么datetime对象首先输出0?
我想与BETWEEN
或>=
等操作数进行比较可能会有什么想法吗?
答案 0 :(得分:0)
这些是默认生成的微秒,默认格式为Y-m-d H:i:s.u
。您可以通过指定Y-m-d H:i:s
来覆盖它,如果这是您想要的。