2015-02-09 57 views
7

我使用的是續集版本2.0.0-rc8。當我存儲本地日期時間時,它始終存儲UTC日期時間。是否有可能使用sequelize存儲本地日期時間?如何將當地日期時間存儲在集合中?

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString? – micnic 2015-02-09 13:12:09

+0

@micnic我在查詢中傳遞了本地日期時間,但它在數據庫中存儲爲UTC。 – Gurpinder 2015-02-09 13:16:20

+0

它將當地時間轉換爲UTC – Gurpinder 2015-02-09 13:16:54

回答

8

由於其他人已經暗示了評論,sequelize會將日期轉換爲UTC--這是設計的原因,因爲它可以更容易地處理續集,並確保在不同時區中的客戶端續集會看到相同的時間戳。

在JavaScript中,日期將始終在服務器的本地時間 - 這是javascript日期對象的屬性。

你可以告訴sequelize使用timezone選擇的日期存儲在不同的時區:

new Sequelize(db, user, pass, { 
    timezone: '+01:30' 
}); 

這將保存所有的日期與時區也認爲當前保存在數據庫中的所有日期在那個時區

+0

非常感謝。我在github上閱讀你的博客,非常感謝你的工作。但我有一個問題,我在表中有4個時間戳字段。我想將它們中的兩個當作當地時間,其餘兩個都存儲爲UTC。我可以使用上述時區選項定義哪些列爲UTC,哪些設置爲本地? – Gurpinder 2015-02-09 13:37:31

+0

@ Jan Aagaard Meier主要問題是不同的用戶存儲當地時間。所以不可能爲所有字段設置時區。我希望我在查詢時傳遞了一個本地字符串,因爲它保存在數據庫中,因爲我們在mYSQl中使用 – Gurpinder 2015-02-09 13:41:40

+0

簡短答案,no - 時區選項是全局的。爲什麼你需要存儲用戶的時區? – 2015-02-09 14:59:02

相關問題