繁体   English   中英

如何使用ASP.Net/ C#请求服务器时间

[英]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,这通常是网络的参考时间源。 最后,如果您没有权威的时间来查询,请考虑允许用户进行时间调整,或者手动输入可能是您的时间与权威时间之间的差值。

如何查询NTP服务器

我已经成功使用过的jQuery倒数时钟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM