0
我有一個查詢從我的數據庫中檢索日期。我的問題是從數據庫中存儲的日期更改。從MySQL數據庫檢索時的更改日期
在數據庫中的日期是2017-01-31 23:01:00
。當我從數據庫檢索它時,它現在是2017-02-01 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
我的時區設置爲:'timezone' => 'Australia/Melbourne',
。我的PHP.ini有date.timezone = UTC
。
幾乎肯定是一個時區差異。你在數據庫中使用什麼時區?什麼是您的PHP的默認時區設置? –
@MarkBaker如何讓PHP不改變時區?存儲在數據庫中的所有日期都是用戶本地的。也就是說,這些是醫學測試,日期代表當地時間該患者進行該測試的時間。 PHP不應該改變日期,直接從數據庫中取出。 –
最好將日期作爲UTC存儲在數據庫中,並且只顯示相應的時區,或者還需要確保將時區存儲在數據庫中,並使用它確保日期正確顯示 –