我的应用程序有一个问题。我以此格式显示日期DD/MM/YYYY示例09/07/2020。但问题是在我的表格中,如果用户居住在留尼旺岛,输入的日期是10/07/2020 (今天的日期加一天),那么用户居住在法国的日期是09/07/2020。
如何在javascript中让居住在任何地方的用户输入相同的日期。
我想有这个:用户生活在留尼汪岛进入10/07/2020和用户生活在法国看到10/07/2020
发布于 2020-07-09 21:17:00
这在JS中是一个反复出现的问题,而解决方案并不容易,因为Date在JS中存储为本地时间。
你可以使用ISO字符串来输入你的时间:YYYY-MM-DDTHH:mm:ss.sssZ。执行以下操作:
new Date('2020-01-01T00:00:00.000Z')都会产生相同的结果。
如果你可以,我会建议你使用Moment.js,如果你打算做日期操作,它会帮你节省很多精力。
发布于 2020-07-09 21:19:48
如果你想保存绝对日期,我建议你使用像moment-timezone这样的库,并以utc格式保存日期。为了做到这一点,你应该做两件事:
const parseDateBeforeSend = (selectedDate) => {
const parsedDate = moment(selectedDate).tz('utc', true).startOf('day').toDate()
return parsedDate
}const showDate = (date) => {
const parsedDate = moment(date).tz('utc').format("DD/MM/YYYY")
return parsedDate
}供您参考:当您在步骤1中使用tz函数时,您可以看到它有第二个参数设置为true,这样做的目的是保持原始的时间,并且只更新时区。这将保留您想要显示的原始日期。在第二步中,我们省略了这个参数,因为我们想要显示以utc格式保存的实际日期。
https://stackoverflow.com/questions/62815489
复制相似问题