JavaScript:不正确的日期

时间:2012-07-23 21:28:59

标签: c# javascript asp.net mysql vb.net

我有一个托管的Web应用程序,可根据每日工作日数据生成报告。由于服务器位于欧洲(设置为使用UTC时间),我位于亚洲(UTC + 5),而我的老板和同行位于美国(UTC-5),我们似乎遇到了相同日期的问题。 / p>

例如,我身边的报告显示“2012年7月23日”,而在美国则显示“2012年7月22日”。我使用RDP检查了服务器,它也显示了“2012年7月23日”。

我的应用中没有本地化。我不确定这是ASP.NET,客户端JavaScript还是MySql根据请求的来源更改日期?有什么想法吗?

修改 刚与我的老板核实过,浏览器中的来源也显示“2012-07-23”。所以我想这会缩小到JavaScript,改变调用new Date("2012-07-23")时的日期。

2 个答案:

答案 0 :(得分:0)

如果您使用ISO Datetime,请确保在末尾指定时区,否则将其计为当地时间。

如果可能,在使用数据库和ASP.NET应用程序时,请将UTC时间用于所有内容。

GETUTCDATE() 

DateTime.UTCNow() 

如果您指定使用日期,请尽可能使用ISO日期来减少文化不变性。

答案 1 :(得分:0)

我认为你可以归咎于你的JavaScript代码。像new Date("2012-07-23")一样使用带有字符串的Date constructor调用Date.parse,如果没有指定,则使用本地时区。

使用自纪元以来的ISO时间戳或毫秒。

当然,显示还有另一个角色。当您输出utc时间,解析为本地时区,作为本地时间时,它将显示utc“正确”。如果输出utc-parsed utc-string作为本地时间,它将正确显示本地时间。