2010-12-06 65 views
1

我正在爲一個項目創建一個倒計時器,我覺得它很重要,以獲得最準確的時間。什麼更準確,更重要的是,服務器時間最不可改變?我如何使用ASP.Net/ C請求服務器時間#

該項目需要幾天/小時/分鐘/秒,所以如果我能抓住確切的時間從服務器請求頁面,那麼我可以把它放在一個JavaScript變量中並從那裏解決。

回答

6

由於這是在服務器上運行的,它會爲您提供服務器時間。

DateTime currentTime = DateTime.Now; 

這可以放在頁面的隱藏字段中,並在頁面加載時用JS讀取它。

然後,你要麼

  • 還需要知道客戶端時的頁面加載的,所以你可以計算出多少時間已過

    OR

  • 有JS增加您添加到服務器時間的計數器值。

對於其中的任何一種,當然,您正在使用setTimeout來啓動一些JS功能。


但是,不要忘了時區!這很重要嗎?

+0

OP,希望在JavaScript中使用服務器的時候,每個人都知道DateTime.Now存在。 – 2010-12-06 16:18:45

0

一種方式是獲得objetive時間和當前時間,然後總秒之差的時間跨度:

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

一些其他的辦法是讓objetive日期並將其保存在一個js js理解某些格式的變量(例如「1975年10月13日11:13:00」),然後在js中創建Date對象。

0

爲什麼不查詢NIST時間服務器?在假定服務器比客戶端更好的來源之前,您必須考慮服務器的層次。還要考慮到您要回發到網絡服務器,而不是DC,這通常是網絡的參考時間源。最後,如果您沒有權威的時間來源進行查詢,請考慮允許用戶進行時間破解或手動輸入,這是您的時間和權威時間之間的差異。

How to Query an NTP Server

A jQuery countdown clock that I have had success with.

相關問題