在我们的角度应用程序中,我们选择一个带有primeNG日历的Date
对象,例如2018年9月20日。
该日期的console.log()
返回正确的Thu Sep 20 2018 00:00:00 GMT+0200
(GMT + 2是我的本地时区)。
此数据将发布到我们的node.js后端,该后端将日期存储到oracle数据库中。但是后端接收到值19.09.2018 22:00
,因此好像它设置为GMT时区。
如何确保在后端方面时区被忽略并且20.09.2018 00:00
被存储?
答案 0 :(得分:0)
您可以使用[toDateString]删除您所在时间的时区信息
date.toDateString()
只要您从服务器收到数据,就可以将其转换为时区
new Date("string of date send by server")
答案 1 :(得分:0)
昨天致电toISOString()
后,我遇到了同样的问题。正如您所注意到的,问题是解析器考虑了时区偏移。我尝试使用.toDateString()
解决问题,但仍然遇到相同的问题。最后,我去了蛮力并做到了:
const dateNum = Date.parse(selectedDate.toString().substring(0, 28));
const date = new Date(dateNum);
前28个字符是所有字符,但不包括加号。它返回的字符串将转储时区偏移量,因此将其视为在GMT时区中创建。这可能不是解决问题的最有效方法,但确实可以。