Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从MySQL数据库检索时的日期更改_Php_Mysql_Laravel - Fatal编程技术网

Php 从MySQL数据库检索时的日期更改

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

我有一个从数据库中检索日期的查询。我的问题是数据库中存储的日期发生了变化

数据库中的日期为2017-01-31 23:01:00。当我从数据库中检索到它时,
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而不是时间戳