2016-05-20 11 views
0

zeigt habe ich diesen JavaScript-Code die aktuelle Zeit auf meiner Website angezeigt werden, funktioniert perfekt für den Desktop, aber es funktioniert nicht auf mobilen GerätenJavaScript Uhr nicht aktuelle Zeit auf mobilen Geräten

Es friert auf die Zeit, wenn die Benutzer besucht die Seite

Ist es möglich, dies zu ermöglichen? Etwas wie aktualisieren Sie das Skript jede Sekunde, um die aktuelle Zeit oder eine andere Lösung anzuzeigen?

document.getElementById("clock").innerHTML = GetTime(); 
 

 
function GetTime(){ 
 
    var d = new Date(); 
 
    var nhour = d.getHours(),nmin=d.getMinutes(); 
 
    if (nmin<=9) { 
 
     nmin = "0" + nmin 
 
    } 
 
    return nhour+":"+nmin+""; 
 
}
<span id="clock"></span>

Ihre Hilfe ist willkommen wirklich!

EDIT: Dank mdickin erkannte ich die Uhr nicht einmal in Desktop nicht aktualisiert. Der gesamte Code hat also etwas falsches.

+2

Wenn Sie sagen, es friert ein, meinst du, die Seite reagiert nicht mehr? Oder meinst du die Zeit wird nie aktualisiert? Weil ich keine Möglichkeit sehe, dass die Zeit auch auf einem Desktop aktualisiert würde – mdickin

+0

Die Uhrzeit wird nicht aktualisiert, und Sie haben Recht. Es wird nicht einmal auf dem Desktop aktualisiert, mein Fehler. – Ermac

Antwort

2

Ja, Sie könnten einen setInterval verwenden, der eine Funktion in regelmäßigen Intervallen (in Millisekunden) ausführt.

function setTime() 
{ 
    document.getElementById("clock").innerHTML = GetTime(); 
} 

setInterval(setTime,1000); 

Sie können die Anzahl der Millisekunden ändern, anzupassen, je nachdem, wie genau Sie wollen ... aber ich bezweifle, dass Sie mehr Sein kümmern müsste als eine Sekunde oder so aus.

Hier ist ein Link mit weiteren Informationen über setInterval and setTimeout

1

Hier ist ein einfaches Programm, das ich in codepen hat einen Live-JS-Timer zu erstellen. Sie müssen lediglich die Funktion innerhalb einer setTimeout-Funktion aufrufen und die Frequenz in Millisekunden angeben.

function startTimer() { 
 
    var today = new Date(); 
 
    var hours = today.getHours(); 
 
    var mins = today.getMinutes(); 
 
    var sec = today.getSeconds(); 
 
    mins = checkTime(mins); 
 
    sec = checkTime(sec); 
 
    document.getElementById('timer').innerHTML = 
 
    hours + ":" + mins + ":" + sec; 
 
    var t = setTimeout(startTimer, 100); 
 
} 
 

 
function checkTime(i) { 
 
    if (i < 10) { 
 
    i = "0" + i 
 
    }; 
 
    return i; 
 
}  
<body onLoad="startTimer()"> 
 
    <div id="timer"></div> 
 
</body> 
 

Hier ist der Link zu meinem codepen

2

Verwenden setInterval Ihre GetTime() Funktion jede Sekunde auszuführen:

document.getElementById("clock").innerHTML = GetTime(); 
 

 
function GetTime(){ 
 
     var d = new Date(); 
 
     var nhour = d.getHours(),nmin=d.getMinutes(); 
 
     if (nmin<=9) { 
 
      nmin = "0" + nmin 
 
     } 
 
     return nhour+":"+nmin+""; 
 
    } 
 
    
 
    setInterval(GetTime, 1000); // run GetTime every 1000ms
<span id="clock"></span>

Verwandte Themen