我的申请有问题。我以这种格式显示日期 DD/MM/YYYY 示例 09/07/2020。但是问题出在我的表单中,如果居住在留尼汪岛的用户输入日期 10/07/2020(今天的日期加上一天),居住在法国的用户看到的是 09/07/2020。
如何在 javascript 中让居住在任何地方的用户输入相同的日期。
我想要这个:居住在留尼汪岛的用户进入 10/07/2020,居住在法国的用户看到 10/07/2020
我的申请有问题。我以这种格式显示日期 DD/MM/YYYY 示例 09/07/2020。但是问题出在我的表单中,如果居住在留尼汪岛的用户输入日期 10/07/2020(今天的日期加上一天),居住在法国的用户看到的是 09/07/2020。
如何在 javascript 中让居住在任何地方的用户输入相同的日期。
我想要这个:居住在留尼汪岛的用户进入 10/07/2020,居住在法国的用户看到 10/07/2020
如果您想保存绝对日期,我建议您使用类似的库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
}
供您参考:tz在步骤 1 中使用函数时,您可以看到它的第二个参数设置为 true,这样做是为了保持原始时间并仅更新时区。这将保留您要显示的原始日期。在第二步中,我们省略了这个参数,因为我们想显示保存在 utc 中的实际日期。
这是JS中经常出现的问题,解决起来并不容易,因为Date在JS中存储为本地时间。
您可以使用 ISO 字符串输入您的时间:YYYY-MM-DDTHH:mm:ss.sssZ. 执行这个:
new Date('2020-01-01T00:00:00.000Z')
将给出相同的结果。
如果可以的话,我会建议你使用Moment.js,如果你打算进行日期操作,它将为你节省很多精力。