JavaScript Date() 在时区之间发生故障?

标签 javascript date

我有一个网站,其中使用 JSON.stringify() 向服务器发送日期和从服务器发送日期。如果客户端写了一条评论,它会连同日期字符串一起发送到服务器,如下所示

"2013-09-21T04:00:00.000Z"

当服务器获取字符串时,我从该字符串创建一个新日期

var server_date = new Date("2013-09-21T04:00:00.000Z");

这个日期变量存储在 MongoDB 中。但是当客户端重新加载页面时,客户端收到的日期字符串看起来像

"2013-09-21T00:00:00.000Z"

当我在客户端根据这个字符串创建一个新日期时

var client_date = new Date("2013-09-21T00:00:00.000Z");

日期对象不正确。不知何故,当我设置 client_date 时,日期设置为 9/20/2013 而不是 9/21/2013。在我的本地机器上运行服务器时,这从来都不是问题。目前服务器正在 AWS 上运行,所以我假设这会以某种方式混淆日期?但我不明白 client_date 变量是如何在字符串中指定的日期前一天设置的,而不管时分秒。我怎样才能格式化我的日期来解决这个问题?谢谢!

最佳答案

Z 表示协调世界时 (UTC) 或格林威治标准时间 (GMT)。因此,当它是 2013-09-21T00:00:00.000Z 在格林威治时,它仍然是 9 月 20 日西部,一直到您的客户所在的位置。

关于JavaScript Date() 在时区之间发生故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19017185/

相关文章:

javascript - 搜索词突出显示代码无法正常工作

javascript - 过渡到页面上的 anchor

javascript - Jquery 方法(单击、更改)不起作用

javascript - 添加月份到 javascript 的 setMonth 显示 0

python - 使用每年的唯一日期范围在数据框中创建一个新列

date - MomentJS 日期字符串添加一天

javascript - 如何在 redux 操作中返回 promise - React Native

javascript - 通过jquery指定样式属性

sql-server - 转换例如。 2012-05-25 自 1970 年 1 月 1 日以来的秒数

php - 如何在 PHP 中将时间从 AM/PM 转换为 24 小时格式?