[英]How do I request server time using ASP.Net/ C#
我正在为一个正在进行的项目创建一个倒数计时器,我觉得获得尽可能准确的时间很重要。 还有什么比服务器时间更准确,更重要的是最不可更改的时间?
该项目需要几天/几小时/几分钟/几秒钟,所以如果我可以从服务器那里获取请求页面的确切时间,则可以将其放入JavaScript变量中并从那里进行处理。
由于这是在服务器上运行的,因此可以为您提供服务器时间。
DateTime currentTime = DateTime.Now;
您可以将其放在页面的隐藏字段中,并在页面加载时使用JS读取它。
那你要么
还需要知道页面加载的客户端时间,以便您可以计算出已花费了多少时间
要么
让JS递增您添加到服务器时间的计数器值。
当然,无论使用哪种方法,您都在使用setTimeout
启动一些JS函数。
但是, 不要忘记时区!!! 这重要吗?
一种方法是获取目标时间与当前时间之间的时差,然后得出总秒数:
TimeSpan diff = objetiveDateTime - DateTime.Now;
int totalSeconds = diff.TotalSeconds();
另一种方法是获取目标日期,并以js可以理解的某种格式将其保存在js变量中(例如“ October 13,1975 11:13:00”),然后在js中创建Date
对象。
为什么不查询NIST时间服务器? 在假定服务器比客户端更好之前,必须考虑服务器所在的层。 还请考虑您是回发到Web服务器,而不是DC,这通常是网络的参考时间源。 最后,如果您没有权威的时间来查询,请考虑允许用户进行时间调整,或者手动输入可能是您的时间与权威时间之间的差值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.