Ste*_*ven 12 .net javascript c# asp.net
如果我的用户在加利福尼亚,并且他们的计算机设置为PST,则那是下午1:00.如果我的服务器设置为EST,则当前服务器时间是下午4:00.
我需要一种方法来获得客户端和服务器之间的时区差异,无论是在Javascript还是C#中.在我的例子中,我会得到3(或-3,无所谓).
有谁知道如何做到这一点?
编辑:RedFilter的可能解决方案
在javascript中完成所有操作:
serverDate = new Date('<%= DateTime.Now.ToString() %>');
clientDate = new Date();
diffMin = (serverDate.getTime()-clientDate.getTime())*1000*60; //get difference in minutes
Run Code Online (Sandbox Code Playgroud)
认为这会奏效吗?或者两者都会同时返回?
Red*_*ter 13
你可以:
1 - 将服务器日期作为Javascript日期变量返回给客户端.
2 - 创建一个新的javascript日期客户端(var currentTime = new Date();)并减去上述日期
3 - 将结果发回服务器(如果需要,您可能只需要知道客户端的区别).
更新
这是一个例子:
serverDate = new Date('<%= DateTime.Now.ToString() %>');
clientDate = new Date();
diffMin = (serverDate.getTime()-clientDate.getTime())/(1000*60);
alert("serverDate: " + serverDate + "\r\n" + "clientDate: " + clientDate + "\r\n" +
"diffMin: " + diffMin);
Run Code Online (Sandbox Code Playgroud)
如果服务器和客户端在同一台计算机上,您将看到diffMin接近零.由于生成日期的服务器端脚本与浏览器解析和执行javascript之间的时间,日期之间存在细微差别.
//这对我很有用 - DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss")