2016-06-07 6 views
0

Der folgende AusdruckPHP Datetime-Objekt Ausgänge Nullen, wirkt Abfrage MySQL Datumzeit

$datetime = new \DateTime('2016-06-02 19:30:17', new \DateTimeZone('America/Tijuana')); 
$datetime->setTimezone(new \DateTimeZone('GMT')); 

kehrt 2016-06-03 02:30:17.000000 (beachten Sie, dass es ausgibt 0en sind nicht in der Eingangs) nachlauf.

Also in Yii2 Abfrage Gebäude, eine Abfrage gegen eine Db-Datetime-Spalte wie die folgende, kann nicht wegen der nachgestellten Nullen gemacht werden.

->andFilterWhere(['created_at' => $this->datetime->format('php:Y-m-d H:i:s')]); 

Warum gibt das Datetime-Objekt an erster Stelle Nullen aus?

Ich nehme an, ein Vergleich mit BETWEEN oder Operanden wie >= könnte tun, irgendwelche Gedanken?

Antwort

0

Dies sind die Mikrosekunden, die standardmäßig generiert werden, da das Standardformat Y-m-d H:i:s.u ist. Sie können es überschreiben, indem Sie Y-m-d H:i:s angeben, wenn Sie das möchten.

+0

Sie haben Recht, aber ich wusste das schon irgendwie. Das Problem war speziell im Format-Parameter '$ this-> datetime-> format ('php: Ymd H: i: s')];' wo ich 'php:' vorhatte (eine Framework-Sache mit Datumsformatierung) etwas, das mit der Datumsklasse nicht notwendig ist. Vielen Dank. @ phreakv6 – Decimoseptimo