處理日期,時間和時區也讓我感到困惑。可能是這個答案給你一些關於你如何處理它們的見解。
嘗試在Chrome的開發者控制檯下面的代碼,看看日期同一如何以不同的格式呈現:
var date = new Date();
date.toISOString(); // "2017-04-29T09:54:28.714Z"
date.toGMTString(); //"Sat, 29 Apr 2017 09:54:28 GMT"
date.toLocalString(); //"4/29/2017, 3:24:28 PM"
您在客戶端創建的任何日期總是記錄爲零時區,即UTC+/-00:00 Z
偏移的日期。爲了簡單起見,您可能認爲UTC和GMT相同。當涉及到顯示目的時,根據瀏覽器的時區顯示同一日期。如果你做console.log (date)
它會輸出Sat Apr 29 2017 15:24:28 GMT+0530 (IST)
但這並不意味着日期的內部記錄是按照瀏覽器的時區。它只是按照瀏覽器的時區顯示在屏幕上/控制檯上。
查看日期表示不是從一個時區轉換到另一個時區,而是將它們視爲同一日期的不同表示。在您的瀏覽器中,它被表示爲GMT+0530
偏移量,並且當它被髮送到服務器時,它是在零時區偏移量處的相同日期。
根據您的意見,如果您在GMT + 0530時區選擇4月4日00:00 AM,那麼在內部它將在GMT + 0,即零時區偏移量的4月3日18:30 PM。讓它按照原樣進入服務器。當你需要使用這個日期時,它將在4月3日從服務器返回,並且它將按照瀏覽器的時區偏移量顯示在瀏覽器中。不涉及轉換,它是具有不同表示的一個日期。
我曾問過一個related question,可能是這個增加了更多的說明。
總的來說,這個答案與@geminiousgoel和@charlietfl的答案相同。
不清楚具體問題是什麼或者你想改變什麼 – charlietfl
我在我的用戶界面上選擇4月4日,服務器在UTC時間4月3日。我的休息apis是第三方,不能改變它們。 我想要全局處理這個問題 – pranavjindal999
但是當你將utc轉換回本地將是相同的。4月4日。仍然不清楚 – charlietfl