0
我剛剛將一個Symfony2.4項目遷移到Symfony3.0,我面臨着一個奇怪的情況。Symfony3使用時區的原則
該項目的默認時區是UTC,所有內容都以UTC時間戳存儲在MYSQL數據庫中。
我檢索與名爲 'Checkout' 日期時間字段中的項,將它傳遞給樹枝模板:
<p>{{ dump(entity.checkOut) }}</p>
<p>{{ dump(entity.checkOut.getTimestamp()) }}</p>
我也得到:
DateTime {#585 ▼
+"date": "2016-09-17 10:46:00.000000"
+"timezone_type": 3
+"timezone": "UTC"
}
1474109160
這是正確的。
但我的應用程序應該支持來自不同時區的用戶。所以我存儲用戶的首選時區和使用事件偵聽器來設置它
date_default_timezone_set($this->token_storage->getToken()->getUser()->getTimezone());
,同樣進入後顯示:
DateTime {#585 ▼
+"date": "2016-09-17 10:46:00.000000"
+"timezone_type": 3
+"timezone": "Asia/Jakarta"
}
1474083960
這顯然是錯誤的,因爲時間戳現在是不同的。我期望這樣:
DateTime {#585 ▼
+"date": "2016-09-17 17:46:00.000000"
+"timezone_type": 3
+"timezone": "Asia/Jakarta"
}
1474109160
這用於在sf2.4罰款。任何人都可以解釋問題是什麼,我該如何解決它?
謝謝您的回答。這確實是一個解決方案,但需要我更新網站上的每個模板。還有一些情況下,例如我必須獲取特定月份的所有記錄,並且在這些情況下,我還應該考慮用戶的時區。更改默認時區非常方便,因爲所有內容都是根據用戶的時區計算的。 – gtsouk
方便是的,但仍然錯誤,因爲你正在經歷。 – vascowhite