[英]How to use firestore TIMESTAMP to create time-stamp in JavaScript
[英]How to create X time stamp from javascript
我同時記錄了X服務器時間和js時間。 我有這些價值觀:
"gdk_x11_get_server_time()": 4413960
"js time-new Date().getTime():" 1425529054961
無論如何我可以從javascript制作x服務器時間嗎? (所以在上面我試圖從js獲得4413960
)而不需要使用ctypes或其他東西並使用gdk_x11_get_server_time ()
?
謝謝
這里有一些來自x11然后來自js的時間轉儲,其中js時間為toLocaleString。 它顯示它們在10秒內間隔0,10和20秒。
"time now is:" "10:26:39 PM" "gdk_x11_get_server_time:" 173753 "new Date().getTime():" 1425536800642
"time now is:" "10:26:50 PM" "gdk_x11_get_server_time:" 183757 "new Date().getTime():" 1425536810644
"time now is:" "10:27:00 PM" "gdk_x11_get_server_time:" 193758 "new Date().getTime():" 1425536820644
更多數據:
study set gdk time js time js to string gdk time diff js time diff stamp diff (s)
a 173753 1425536800642 10:26:39 PM
a 183757 1425536810644 10:26:50 PM 10004 10002 11
a 193758 1425536820644 10:27:00 PM 10001 10000 10
b 771689 1425537398575 10:36:38 PM
b 771690 1425537398576 10:36:38 PM 1 1 00
b 781690 1425537408576 10:36:48 PM 10000 10000 10
b 791690 1425537418576 10:36:58 PM 10000 10000 10
b 801690 1425537428576 10:37:08 PM 10000 10000 10
b 811690 1425537438576 10:37:18 PM 10000 10000 10
b 821690 1425537448576 10:37:28 PM 10000 10000 10
b 831691 1425537458577 10:37:38 PM 10001 10001 10
b 841691 1425537468578 10:37:48 PM 10000 10001 10
b 851691 1425537478577 10:37:58 PM 10000 9999 10
希望這可以幫助 :)
var timestamp = Math.floor( Date.now() / 1000);
我們可以告訴單位是ms,但偏移是未知的。 似乎服務器時間是自當地午夜以來的ms。 如果我們只能捕獲一個servertime快照,我們可以記住偏移量並隨意計算服務器時間戳。 下面簡單代碼的唯一警告是生成的時間戳功能需要每24小時至少運行一次,或者您可以定期從新的服務器時間戳重新生成新的計時器以對抗DST,滯后,時鍾調整等。
你使用服務器時間戳調用getTimer(),它返回一個像Date.now()一樣工作的新函數,但(希望)返回服務器時間戳而不是UTC時間戳(+/-任何延遲)。
function getTimer(serverTime){
var now=Date.now(), max=1000*60*60*24;
serverTime*=1; //force number
return function(){
var diff=(Date.now()-now)+serverTime;
if(diff<max) return diff;
now+=max;
return (Date.now()-now)+serverTime;
};
}
var serverClock=getTimer(4413960); // make a new timer function
setTimeout(function(){console.info(serverClock()); }, 5000);
console.info(n=serverClock()); // should be ~5000 more than first time
編輯:好的,如果它沒有每24小時重置一次,你需要在每次重置時手動運行它。 如果這對您來說很簡單,那么您可以在某種程度上簡化發電機:
function getTimer(serverTime){
var now=Date.now();
serverTime*=1; //force number
return function(){
return (Date.now()-now)+serverTime;
};
}
您可能希望每天重新同步一次或重新啟動,但至少在此情況下,您不需要每次都打擾服務器,您可以在本地對其進行一些可靠性計算。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.