我已将Yii-> application-> configuration-> timezone设置为UTC,并使用模型attributeBehaviors自动使用 PHP的time()方法插入/更新时间戳.
问题是,保存到数据库的时间戳是将来的,当我对今天的记录执行搜索查询时,如果它们是在10到午夜之间创建的,则它们不会被返回,因为时间戳实际上是明天.
我应该如何创建记录并执行搜索查询?
谢谢.
最佳答案 看来PHP在任何MySQL时区之间都有区别.
尝试执行以下操作:
echo date_default_timezone_get() . "<br>";
echo Yii::$app->formatter->timeZone . "<br>";
echo Yii::$app->formatter->defaultTimeZone . "<br>";
echo Yii::$app->db->createCommand('SELECT @@time_zone')->queryScalar() . "<br>";
echo Yii::$app->db->createCommand('SELECT @@system_time_zone')->queryScalar() . "<br>";
(查询是针对MySQL DBMS的,如果你有另一个 – 查询也将是另一个)
当你看到差异时 – 你必须在PHP和MySQL中设置相同的时区(for PHP,for Yii2)