-1

我们将时间作为长类型从服务器发送到 javascript。Javascript 日期函数根据用户区域设置将其转换为日期。我们不希望这样。我们希望将其设置为来自服务器的日期。

例如; 我们2013-06-05 17:00:00从服务器发送,在客户端它显示为2013-06-05 15:00:00用户浏览器。我想展示来自服务器的内容。我该如何纠正这个问题?

4

1 回答 1

0

您描述的行为在 JavaScript 中很常见。

您可以通过两种方式处理此问题:

选项1

从您的服务器发送 UTC 时间。您可以将其作为整数发送,也可以作为带Z偏移量的 ISO8601 字符串发送。在 JavaScript 中,始终以 UTC 时间显示该值。

选项 2

从服务器发送 ISO8601 格式的日期/时间字符串。使用未指定的区域偏移量发送它(没有Z值或偏移量,例如-04:00)。在客户端解析该值,可以使用支持 ISO8601 格式的现代浏览器,也可以使用诸如moment.js 之类的库。

由于您没有在问题中提供任何代码示例,因此我不会在答案中提供任何代码,也不会进一步详细说明。如果您想更新您的问题以准确显示您在做什么、您尝试过什么以及哪些无效,那么我很乐意删除这一段并向您展示可以实现这些选项中的任何一个的代码。如果你做一些研究并在代码中解释你的发现,你会发现你在 StackOverflow 上得到了更好的结果。

于 2013-06-05T15:23:30.937 回答