【问题标题】:Datetime difference on server and client side timezone服务器和客户端时区的日期时间差异
【发布时间】:2016-02-01 06:20:25
【问题描述】:

我有一个 Web 应用程序,其中我的服务器托管在美国,而我的客户来自印度。我有一个日期时间选择器,我在服务器上验证客户端和服务器日期时间是否匹配,但问题是由于客户端和服务器的时区不同,它会导致无效。如何解决日期时间问题

【问题讨论】:

  • var d = new Date(); var n = d.getTimezoneOffset(); 它将为您提供 UTC 偏移量(以分钟为单位 (local)),将此信息与您的日期一起从客户端发送到服务器。您说服务器托管在美国(例如:UTC+10 (server))。区别将是 server - local.

标签: javascript c# asp.net server


【解决方案1】:

在您的浏览器中将时间转换为 UTC 并在任何地方处理 UTC(向用户显示除外)并以完整的 ISO8601 格式将日期发送到服务器,以便在服务器解析时能够转换为其本地时区:

// JavaScript: myDateTimeValue should be of type Date
var utcDateTimeAsString = myDateTimeValue.toISOString();

要么将其设置为将发送到服务器的隐藏字段(如果使用常规回发),要么仅作为 AJAX 请求的一部分发送。

服务器端 - 定期解析此类字符串将产生对应于相同绝对时间的有效本地日期:

// C# parsing of result of JavaScript call: (new Date()).toISOString();
DateTime localTime = DateTime.Parse("2016-02-01T06:38:05.609Z");

如果您决定手动处理时区,请提供链接:

【讨论】:

    【解决方案2】:

    更改服务器的 DateTime 设置以匹配印度时区而不是美国。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2016-05-12
      • 2013-04-19
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      相关资源
      最近更新 更多