Php 从MySQL数据库检索时的日期更改
我有一个从数据库中检索日期的查询。我的问题是数据库中存储的日期发生了变化 数据库中的日期为2017-01-31 23:01:00。当我从数据库中检索到它时,Php 从MySQL数据库检索时的日期更改,php,mysql,laravel,Php,Mysql,Laravel,我有一个从数据库中检索日期的查询。我的问题是数据库中存储的日期发生了变化 数据库中的日期为2017-01-31 23:01:00。当我从数据库中检索到它时,echo日期现在是2017-02-01:01:00 是什么导致了此更改?我如何修复它 我的代码如下。代码位于Laravel控制器类中: $test_data = UserTest::where('test_id', '=', $id) ->where('user_id', '=', $userId) ->selec
echo
日期现在是2017-02-01:01:00
是什么导致了此更改?我如何修复它
我的代码如下。代码位于Laravel控制器类中:
$test_data = UserTest::where('test_id', '=', $id)
->where('user_id', '=', $userId)
->select('date')
->get();
echo $test_data[0]->date; // outputs: 2017-02-01 01:01:00
编辑:在Laravel
config/app.php
中,我的时区设置是:“时区”=>“澳大利亚/墨尔本”
。My PHP.ini在config/app.PHP中有date.timezone=UTC
,您可以设置默认时区
'timezone' => 'Australia/Sydney', // or simply 'UTC'
以前保存的记录仍将被偏移。但从现在起,你保存的数据将是正确的。几乎可以肯定是时区差异。数据库中的日期使用哪个时区?那么PHP的默认时区设置是什么?@MarkBaker如何使PHP不改变时区?数据库中存储的所有日期都是用户的本地日期。也就是说,这些是医学测试,日期代表在当地时间进行测试的时间。PHP根本不应该更改日期,直接将其从数据库中取出。最好将日期存储在数据库中为UTC,并且只显示适当的时区,或者您还需要确保将时区也存储在数据库中,并使用它来确保日期正确显示或,尝试使用datetime而不是时间戳