如何編寫腳本來檢測用戶何時在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. 我PendingIntents和系統時間更改
- 6. Node.js的系統時間更改
- 7. 更改系統日期,時間
- 8. 動態更改系統時間win7
- 9. 字段值更改系統時間
- 10. 是否有構建系統不使用時間戳來檢查文件更改
- 11. 使用java代碼更改ubuntu系統時間
- 12. Javascript。如何檢測window.document何時更改?
- 13. 更新系統時間C
- 14. 更改Linux時間來欺騙系統正常運行時間
- 15. 使用Powershell檢測系統關機
- 16. 如何檢測系統時間小時的變化
- 17. 如何檢測textarea值何時使用javascript更改?
- 18. 如何使用JavaScript檢測Chromium操作系統?
- 19. 如何使用JavaScript檢測iOS設備的系統語言?
- 20. 如何使用JavaScript檢測與麥克風連接的系統
- 21. 使用DBContext檢測更改
- 22. 如何使AppleScript更改系統偏好設置中的時間
- 23. 在Windows上使用Java檢測Samba共享上的文件系統更改
- 24. 如何檢測對Windows系統托盤的更改?
- 25. 如何在lnux系統中檢測文件更改或刪除
- 26. Java檢測文件系統中的更改
- 27. 如何檢測java中的文件系統已更改
- 28. VBA Access 2010用於更改系統日期,時間
- 29. 如何禁用系統更改日期和時間屬性
- 30. 使用JavaScript檢測時區
如果用戶正在更改**系統時間,您會遇到一些嚴重問題。 – Pointy 2010-07-29 22:35:57
@Pointy:在我的編輯之前,該評論更有意義:p – 2010-07-29 22:37:40
「他們的」。當然,謝謝 – AHOYAHOY 2010-07-29 22:39:36