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

C# 如何使用ASP.Net/C请求服务器时间#,c#,asp.net,datetime,C#,Asp.net,Datetime,我正在为我正在进行的一个项目创建一个倒计时,我觉得获得尽可能准确的时间很重要。什么比服务器时间更准确,更重要的是,它是最不变的 该项目需要天/小时/分钟/秒,因此,如果我能够获取从服务器请求页面的确切时间,我可以将其放入一个JavaScript变量中,然后从那里计算出来。由于这是在服务器上运行的,它会给您服务器时间 DateTime currentTime = DateTime.Now; 您可以在页面上放置一个隐藏字段,并在页面加载时使用JS读取该字段 那么,你要么 还需要知道客户端加载页面

我正在为我正在进行的一个项目创建一个倒计时,我觉得获得尽可能准确的时间很重要。什么比服务器时间更准确,更重要的是,它是最不变的


该项目需要天/小时/分钟/秒,因此,如果我能够获取从服务器请求页面的确切时间,我可以将其放入一个JavaScript变量中,然后从那里计算出来。

由于这是在服务器上运行的,它会给您服务器时间

DateTime currentTime = DateTime.Now;
您可以在页面上放置一个隐藏字段,并在页面加载时使用JS读取该字段

那么,你要么

  • 还需要知道客户端加载页面的时间,以便计算已过的时间

  • 让JS递增您添加到服务器时间的计数器值

  • DateTime currentTime = DateTime.Now;
    
当然,使用这两种方法之一,您可以使用
setTimeout
启动一些JS函数



然而,不要忘记时区这很重要吗?

因为这是在服务器上运行的,所以它为您提供了服务器时间

DateTime currentTime = DateTime.Now;
您可以在页面上放置一个隐藏字段,并在页面加载时使用JS读取该字段

那么,你要么

  • 还需要知道客户端加载页面的时间,以便计算已过的时间

  • 让JS递增您添加到服务器时间的计数器值

  • DateTime currentTime = DateTime.Now;
    
当然,使用这两种方法之一,您可以使用
setTimeout
启动一些JS函数



然而,不要忘记时区这很重要吗?

一种方法是获取目标时间与当前时间之差的时间跨度,然后是总秒数:

TimeSpan diff = objetiveDateTime - DateTime.Now;
int totalSeconds = diff.TotalSeconds();

另一种方法是获取目标日期并以js理解的格式(例如“1975年10月13日11:13:00”)将其保存在js变量中,然后在js中创建
date
对象。

一种方法是获取目标时间与当前时间之差的时间跨度以及总秒数:

TimeSpan diff = objetiveDateTime - DateTime.Now;
int totalSeconds = diff.TotalSeconds();

另一种方法是获取目标日期并以js理解的格式(例如“1975年10月13日11:13:00”)将其保存在js变量中,然后在js中创建
date
对象。

为什么不查询NIST time server?在假设服务器是比客户端更好的源之前,必须考虑服务器的哪个层次。还考虑到您正在返回到Web服务器,而不是DC,这通常是网络的参考时间源。最后,如果你没有一个权威的时间来源来查询,考虑允许用户输入一个时间黑客,或者手动输入,这将是你的时间和权威时间之间的差异。


为什么不查询NIST时间服务器?在假设服务器是比客户端更好的源之前,必须考虑服务器的哪个层次。还考虑到您正在返回到Web服务器,而不是DC,这通常是网络的参考时间源。最后,如果你没有一个权威的时间来源来查询,考虑允许用户输入一个时间黑客,或者手动输入,这将是你的时间和权威时间之间的差异。


OP,想在javascript中使用服务器时间,每个人都知道日期时间。现在存在。@Saeed,好的,所以把
DateTime.Now
放在一个隐藏字段中,用JS读取,然后启动倒计时。OP,想在javascript中使用服务器时间,每个人都知道日期时间。现在存在。@Saeed,好的,现在把
DateTime.Now
放在一个隐藏字段中,用JS读取它,然后开始倒计时。