2016-06-07 28 views
0

下面的表達式PHP DateTime對象輸出尾隨零,影響對MySQL的日期時間

$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

這些是默認生成的微秒數,默認格式爲Y-m-d H:i:s.u。如果這是你想要的,你可以通過指定Y-m-d H:i:s來覆蓋它。

+0

你是對的,但我有點知道這一點。這個問題具體是''this-> datetime-> format('php:Ymd H:i:s')]);''我在哪裏預先加入了'php:'(一個帶日期格式化的框架)與日期類別無關的東西。非常感謝你。 @ phreakv6 – Decimoseptimo