服务器和客户端时区上的日期时间差异

Datetime difference on server and client side timezone

本文关键字:日期 时间差 客户端 时区 服务器      更新时间:2023-09-26

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

在浏览器中将时间转换为 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");

如果您决定手动处理时区,则链接:

  • 在 JavaScript 中将本地转换为 UTC - 如何将 JavaScript 日期转换为 UTC?
  • 如果需要在服务器端呈现值,则获取时区偏移量 - 如何在javascript中获取UTC偏移量(类似于C#中的TimeZoneInfo.GetUtcOffset)
  • 在 JavaScript 中将 UTC 转换为本地 - 使用 JavaScript 将 UTC 日期时间转换为本地日期时间

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