如何編寫腳本來檢測用戶何時在JS中更改其系統時間?使用JavaScript檢測系統時間更改
回答
沒有(可移植的)方式來跟蹤JavaScript中的變量。另外,日期信息並不在DOM中,因此您不會觸發DOM事件。
您可以做的最好的方法是使用setInterval
定期檢查(每秒?)。 Example:
function timeChanged(delta) {
// Whatever
}
setInterval(function timeChecker() {
var oldTime = timeChecker.oldTime || new Date(),
newTime = new Date(),
timeDiff = newTime - oldTime;
timeChecker.oldTime = newTime;
if (Math.abs(timeDiff) >= 5000) { // Five second leniency
timeChanged(timeDiff);
}
}, 500);
你的意思是如果他們將自己的系統時間改變成錯誤的東西?您可以詢問用戶的時區,並從服務器獲取正確的時間,然後將其與用戶的系統時間進行比較。
我的頁面在確切的時間生成了事件。當用戶改變他的系統時間時,例如跳過幾個事件。 – AHOYAHOY 2010-07-29 22:43:57
不要以爲有你問什麼,但你可以得到用戶的時區偏移的解決方案。
new Date().getTimezoneOffset() * -1
這將返回GMT以後的偏移量。請記住,雖然這不考慮DST。
檢查中,時間並沒有改變太多的時間間隔功能:
function getTime() {
var d = new Date();
return d.getTime();
}
function checkTime() {
if (Math.abs(getTime() - oldtime) > 2000) { // Changed by more than 2 seconds?
alert("You changed the time!");
}
oldtime = getTime();
}
var oldtime = getTime();
setInterval(checkTime, 1000); // Check every second that the time is not off
測試在Windows上使用Opera & FF和完美的作品。
我的不好,沒有仔細閱讀代碼。 – mattbasta 2010-07-29 22:47:58
var last_time = new Date().getTime();
setInterval(function() {
var time = new Date().getTime();
var offset = time - last_time;
if(offset < 0 || offset > 1500) {
// Time has been changed
}
last_time = time;
}, 1000);
理論上,這應該起作用。它會每秒檢查一次以確保時間沒有改變。請注意,我使用1100毫秒,因爲大多數JS解釋器不會在指定的時間觸發事件。
希望這會有所幫助!
您可以每30秒檢查一次,等等。如果新時間超過30秒+/-某個閾值,您可以進行更詳盡的比較以確定它已更改多少。
- 1. 使用/ bin/date更改系統時間
- 2. 檢測文件更改 - 修補系統
- 3. C#禁用系統時間更改
- 4. linux - 檢測系統時間的變化
- 5. Node.js的系統時間更改
- 6. 我PendingIntents和系統時間更改
- 7. Javascript。如何檢測window.document何時更改?
- 8. 更改Linux時間來欺騙系統正常運行時間
- 9. 使用Powershell檢測系統關機
- 10. 如何檢測textarea值何時使用javascript更改?
- 11. 如何檢測系統時間小時的變化
- 12. 在Windows上使用Java檢測Samba共享上的文件系統更改
- 13. 如何檢測java中的文件系統已更改
- 14. Java檢測文件系統中的更改
- 15. 如何禁用系統更改日期和時間屬性
- 16. 使用JavaScript檢測時區
- 17. 如何在更改系統時間時使用setInterval/setTimeout解決nodejs穩定bug
- 18. 更改叉()系統調用
- 19. 更改系統時間不接受時區
- 20. Java系統更改計算機時鐘後的時間
- 21. 如何檢測屏幕亮度或系統音量何時更改?
- 22. 如何檢測我在運行Unity的系統上的時間?
- 23. 檢測Android系統日期/時間格式更改並反映在應用程序中
- 24. 檢索系統日期和時間?
- 25. 檢測系統alertView willAppear/willDismiss
- 26. 系統空閒檢測
- 27. 基於Javascript的時間評分系統
- 28. System.currentTimeMillis();如果我改變系統時間
- 29. 使用JavaScript的即時消息系統
- 30. 檢測系統時間是否已在java中向後移動,或者使用時間校驗定時器
如果用戶正在更改**系統時間,您會遇到一些嚴重問題。 – Pointy 2010-07-29 22:35:57
@Pointy:在我的編輯之前,該評論更有意義:p – 2010-07-29 22:37:40
「他們的」。當然,謝謝 – AHOYAHOY 2010-07-29 22:39:36