我看到人們使用date或getTime存儲/獲取服務器的時間和時間,它可以保存在數據庫中,作爲各種字符串:「1983年7月21日01:15:00」。我應該如何保持服務器時間?
到目前爲止,我將服務器時間存儲爲NOW與2013年1月1日之間的差異。這將返回一個數值(以分鐘爲單位),在2013年1月1日至現在爲止,我將其作爲內部服務器時間。
這樣做的好處是: - 查詢服務器意味着一個簡單的數字比較操作,同時(我作出一個有教育的猜測)比較兩個日期意味着內部轉換爲對象和使用脂肪比較操作。 - 存儲一定數量的大小比~25個字符的字符串更輕量級。 - 轉換回「真實」的時間是2013年1月1日增加,但由於初始圓度,秒和毫秒值丟失。
但是,其他同行的程序員堅持認爲使用字符串版本 - 作爲一個人很容易閱讀。 - 它是大多數語言的通用格式(尤其是此項目所具有的nodejs,mongodb和as3)。
我不確定哪個更適合大型數據庫,特別是對於基於多人插座的遊戲。我相信其他有這方面實際經驗的人可以對我的問題有所瞭解。
那麼哪個更好,爲什麼?
並將其作爲UTC以及使您的應用程序TZ知道,這樣你有真正的國際化。我真的會與你一直在談論的程序員爭辯......數據庫存儲的數據不應該是人類可讀的,這就是爲什麼你要製作應用程序 – Sammaye
那麼爲什麼不把它們存儲爲2013年1月1日之間的差異呢?這樣兩個日期都在同一個時區。實際上所有的差異都在同一時區日期之間。 – Discipol
@Discipol如果你將它們存儲爲int並且它們將是未來證明,那麼對該部分沒有任何反應,但任何其他日期都應該是日期時間對象,字符串日期是死亡跪拜,我接管了很多系統那些已經犯了這些錯誤... – Sammaye