PHP Datetime对象输出尾随零,影响MySQL日期时间的查询

时间:2016-06-07 05:24:11

标签: mysql datetime yii2 where

以下表达式

$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>=等操作数进行比较可能会有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这些是默认生成的微秒,默认格式为Y-m-d H:i:s.u。您可以通过指定Y-m-d H:i:s来覆盖它,如果这是您想要的。