我已将 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 - Yii2 model->created_date 是 future 的,不会在查询时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33294652/