在javascript中使用new date()时获取错误的日期

在javascript中使用new date()时获取错误的日期,javascript,node.js,reactjs,typescript,Javascript,Node.js,Reactjs,Typescript,我将ISO datetime值存储在数据库中,当使用new Date()方法时,它显示错误的日期 当我使用new Date().toISOString()时,输出是2021-05-05T13:33:35.673Z,当我使用new Date(event.Date).toISOString()时,输出是2021-05-05T18:47:00.000Z 但是当我尝试newdate().getDate()时,输出是5,但是对于newdate(event.Date).getDate()来说,输出是6。为什

我将ISO datetime值存储在数据库中,当使用
new Date()
方法时,它显示错误的日期

当我使用
new Date().toISOString()
时,输出是
2021-05-05T13:33:35.673Z
,当我使用
new Date(event.Date).toISOString()
时,输出是
2021-05-05T18:47:00.000Z


但是当我尝试
newdate().getDate()
时,输出是
5
,但是对于
newdate(event.Date).getDate()
来说,输出是
6
。为什么它是
6
而不是
5

这里的混淆是
getDate
使用您的本地时区,但是
toISOString
以UTC显示信息

如果需要ISO字符串中的同一天值(UTC),请使用
getUTCDate


console.log(新日期(“2021-05-05T18:47:00.000Z”).getUTCDate()event.dateevent.date的值是多少?因此您得到了正确的输出。你期望的是什么,为什么?我得到了错误的输出,因为我得到了答案3;(@IshanJoshi-与上面的代码无关,您描述的输入也不会。我猜您不小心使用了
getUTCDay
(一周中的一天),而不是
getUTCDate
(一个月中的一天)。(
getUTCDay
确实会给您3,因为5号是星期三,0=星期天,1=星期一,…)好的,谢谢。真是个愚蠢的错误。我花了30分钟