js解決客戶端與伺服器時間不一致的問題

2021-10-01 15:37:35 字數 990 閱讀 3794

最近在寫乙個專案時,要根據時間進行不同的展示,直接用new date().gettime()獲取當前時間,結果就出問題了。有些使用者擅自修改自己的本地時間,導致獲取到的時間並不是當前時間,尷尬。

既然如此,首先想到的就是讓本地時間以伺服器的時間為基準,只要讓伺服器傳乙個時間戳過來就可以了。那如何實現動態獲取時間呢?畢竟不能每次獲取時間都到伺服器去要吧。乙個粗糙的思路,只要知道現在與獲取伺服器時間過了多久,然後動態的相加就可以了。那如果記錄時間差呢?

剛開始我想的是,記錄獲取伺服器時間時的時間點(gainservertime),將當前時間點與gainservertime相減,就可以得到經過了多久。但是,如果使用者在進入頁面之後修改時間的話,就會得到錯誤的時間差,並不能解決問題。

然後我想到了定時器,記錄時間秒數experiencetime,每秒+1,固然會犧牲一定的效能,但問題是我沒想到更好的辦法。

/**

* 獲取當前時間的物件

* @param servertime

* 伺服器時間戳(秒)

*/function getnowdate(servertime)

​/**

* 獲取當前時間戳,毫秒級

*/getnowdate.prototype.gettime = function ();​​

/** * 獲取當前時間date物件

*/getnowdate.prototype.getdateobject = function();​​

// 獲取當前毫秒級時間戳

getnowdate.prototype.getnowmillitime = function();

​// 初始化物件

getnowdate.prototype.init = function(), 1000);

};

當然,看著就有很多問題,之後遇到再完善吧

碼雲位址

伺服器與客戶端

建立socket操作,建立流式套接字,返回套接字型大小socksrv socket socket int af,int type,int protocol 第乙個引數,指定位址簇 tcp ip只能是af inet,也可寫成pf inet socket socksrv socket af inet,s...

客戶端與伺服器

cs與bs 軟體使用方式上的兩種劃分 c s client server pc客戶端與伺服器架構 特點 在伺服器當中就主要是乙個資料庫,把所有業務邏輯都交給客戶端來完成 優點 較為安全,使用者介面豐富,客戶體驗好 缺點 每次公升級都要重新安裝,針對不同的作業系統開發,可移植性差 b sbrowser...

android客戶端與伺服器時間同步

如何保障android客戶端與伺服器時間同步,不受使用者更改系統時間的影響?ntp原理如下 device a傳送乙個ntp報文給device b,該報文帶有它離開device a時的時間戳,該時間戳為10 00 00am t1 當此ntp報文到達device b時,device b加上自己的時間戳,...