我有一個問題讓我的頭根據日期(沒有時間)存儲和檢索信息並處理多個時區。處理時區和日期
默認情況下,我的應用程序使用UTC,因此創建/更新時間都是UTC,PHP等函數都使用UTC。
我的問題是這樣的:
我允許用戶創建一條新聞,新聞項目有一個日期(沒有時間,只是日期)。
應用程序使用UTC,我的用戶是在悉尼,所以我要做的就是加載窗體時我預填充基礎的jS M Y
爲澳大利亞/悉尼時區的日期字段,這樣它顯示爲今天他。迄今爲止都很好。
當我將記錄保存到數據庫(進入日期字段)時,我使用他們輸入的日期,所以如果他們說2016年3月3日,那麼它會在2016-03-03進入。
當它被再次拉出時,它對它們顯示正常,但是如果我做了一個報告「今天發佈了多少新聞項目?」,在我的報告(cron作業)中它可能正在尋找不同的日期,因爲如果這個人在清晨進入,那麼悉尼2016年3月3日仍然是UTC的2016年3月2日,因此今天會有0。
它出現的解決方案是將日期轉換爲UTC時的日期,但它將如何工作?..因爲它只是一個沒有時間的日期。
2016年3月2日00:00:00 UTC將是2016年3月2日10:00:00悉尼
所以..我不知道如何解決這個他們無需同時輸入一個時間,這似乎多餘的。
請小心絕對。任何時候你發現自己說*總是*,記住總有*規則的例外。在這種情況下,「始終使用UTC」的建議已經在互聯網周圍傳播得如此之多以至於人們盲目追蹤並經常遇到陷阱。確實存在UTC以外的時間更適合(或甚至需要)的情況。一個很好的例子是[* scheduling *](http://stackoverflow.com/a/19627330/634824)。你的其他觀點是有效的 - 但請注意這一點。謝謝。 –
謝謝馬特。在任何情況下,我都遇到過多個時區是一個因素,UTC和時間戳是一個很好的方法,節省了很多痛苦。但是,我完全同意你的意思。 – CoderCreative
@CoderCreative當用戶在日曆上選擇2016年3月3日時,您會如何建議我將其轉換爲UTC時間戳?如果他們從一個月前選擇了一個數據,例如2016年2月14日,那麼該數據會變得微不足道。當您包含時間時,它會變得微不足道...... – Wizzard