php - Yii2 model->created_date 是 future 的,不会在查询时返回

标签 php mysql datetime timestamp yii2

我已将 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 PHPfor Yii2)

关于php - Yii2 model->created_date 是 future 的,不会在查询时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33294652/

相关文章:

php - Laravel 在 mysql 中存储计划任务

php - 提取两个值之间的所有字符串

swift - 从当前日期减去一定天数并以特定日期格式打印

mysql - 使用新生成的密码更新表中的列

mysql - SQL : 2 distinct counts with different where clauses on same field

javascript - MomentJS - 将日期时间从 UTC 转换为不同的时区

sql - (Oracle) 将日期字符串转换为日期时间

php - Js Validator Plugin Remote Rules for Unique Value Checking without Refresh Page 在 Ajax 调用后不起作用

php - 如何删除不需要的值并改为显示 null

php - mysqli_affected_rows() 返回 -1 但查询有效