【问题标题】:How to pass date in javascript without it being manipulated如何在不被操纵的情况下在javascript中传递日期
【发布时间】:2020-08-01 14:20:13
【问题描述】:

我的数据库中存储了日期和时间,以及何时获取它。它被操纵到另一个日期和时间。

我将这个日期直接作为电子邮件发送,我的意思是它是从数据库中获取并作为电子邮件发送的,所有这些都在服务器中完成。 当我在客户端获取日期时,这是我所期望的,但它在电子邮件中有所不同

一个例子是我保存了以下日期和时间; 8 月 1 日下午 1 点。

当我从我的服务器获取它时,我是 7 月 31 日下午 12 点。

这只发生在我的生产服务器上,我的意思是如果我在本地电脑上运行它,它会在 8 月 1 日下午 1 点准确返回。

但在我托管在 aws ec2 和 heroku 上的服务器上,我会在 7 月 31 日下午 12 点到达

【问题讨论】:

  • 如果您能给我们存储在数据库中的日期和时间的确切格式,将有助于我们更多地提供如何将其转换为 UTC

标签: javascript node.js date datetime time


【解决方案1】:

获取您的时间并将其转换为UTC 时间和日期,然后在接收方将UTC 转换回本地时间

const myDate = "2020-07-31T23:00:00.000Z"; //from DB
const utcDate = new Date(myDate).toUTCString(); // on receiving end

console.log(utcDate)

【讨论】:

  • 时间是这样的2020-07-31T13:00:00.000+00:00,日期是这样的2020-07-31T23:00:00.000Z
  • 你使用哪种语言,Java、Javascript、nodejs?
  • javascript,我正在使用 nodejs 从数据库中获取它
  • 检查我的答案。
  • 问题是,我直接将这个日期作为电子邮件发送,我的意思是它是从数据库中获取并作为电子邮件发送的,所有这些都在服务器中完成。当我在客户端获取日期时,这是我所期望的,但它在电子邮件中有所不同
【解决方案2】:

我通过为我的服务器设置用于处理日期和时间的默认时区解决了这个问题。 我利用了时刻时区。

【讨论】:

    【解决方案3】:

    最有可能的时区问题。您的生产服务器和系统位于不同的区域。

    【讨论】:

    • 有什么办法解决这个问题吗?你有什么建议?
    • 没有两个时区相差 25 小时。最常见的情况是 UTC 与本地,最长为 +14 小时。最大的西风偏移为 -10,因此最长为​​ 25 小时(檀香山 vs 基里巴斯),这在网络上极为罕见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 2011-05-19
    • 2013-06-02
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    相关资源
    最近更新 更多