首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >utc时间根据javascript中的时区

utc时间根据javascript中的时区
EN

Stack Overflow用户
提问于 2020-07-09 21:03:30
回答 2查看 32关注 0票数 0

我的应用程序有一个问题。我以此格式显示日期DD/MM/YYYY示例09/07/2020。但问题是在我的表格中,如果用户居住在留尼旺岛,输入的日期是10/07/2020 (今天的日期加一天),那么用户居住在法国的日期是09/07/2020。

如何在javascript中让居住在任何地方的用户输入相同的日期。

我想有这个:用户生活在留尼汪岛进入10/07/2020和用户生活在法国看到10/07/2020

EN

回答 2

Stack Overflow用户

发布于 2020-07-09 21:17:00

这在JS中是一个反复出现的问题,而解决方案并不容易,因为Date在JS中存储为本地时间。

你可以使用ISO字符串来输入你的时间:YYYY-MM-DDTHH:mm:ss.sssZ。执行以下操作:

代码语言:javascript
复制
new Date('2020-01-01T00:00:00.000Z')

都会产生相同的结果。

如果你可以,我会建议你使用Moment.js,如果你打算做日期操作,它会帮你节省很多精力。

票数 0
EN

Stack Overflow用户

发布于 2020-07-09 21:19:48

如果你想保存绝对日期,我建议你使用像moment-timezone这样的库,并以utc格式保存日期。为了做到这一点,你应该做两件事:

  1. 在将日期发送到服务器之前以协调世界时为单位设置日期:

代码语言:javascript
复制
const parseDateBeforeSend = (selectedDate) => {
 const parsedDate = moment(selectedDate).tz('utc', true).startOf('day').toDate()
 return parsedDate
}

  1. 将日期转换为协调世界时,然后将其显示给用户:

代码语言:javascript
复制
const showDate = (date) => {
  const parsedDate = moment(date).tz('utc').format("DD/MM/YYYY")
  return parsedDate
}

供您参考:当您在步骤1中使用tz函数时,您可以看到它有第二个参数设置为true,这样做的目的是保持原始的时间,并且只更新时区。这将保留您想要显示的原始日期。在第二步中,我们省略了这个参数,因为我们想要显示以utc格式保存的实际日期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62815489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档