处理日期,时间和时区也让我感到困惑。可能是这个答案给你一些关于你如何处理它们的见解。
尝试在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