K_Kurt: Counter

Hallo zusammen

Für eine Webseite würde ich einen Counter benötigen, wie lange es noch bis Mitternacht geht. Als Zeit soll dabei die Serverzeit genommen werden und um Mitternacht (falls da die Seite im Browser geöffnet ist), die Seite aktualisieren. Hole dann mit dem Timestamp je nach Datum anderen Inhalt in die Seite.

Leider habe ich noch keine richtig funktionierende Lösung.

Mein Code im moment:

  
<html>  
<head>  
  
<?  
$time = split("[:]",date("H:i:s"));  
$h=$time[0]; // Stunden  
$m=$time[1]; // Minuten  
$s=$time[2]; // Sekunden  
  
  
  
$dh=(23-$h)*60*60;  
$dm=(59-$m)*60;  
$ds=60-$s;  
$sum = $dh+$dm+$ds; // Differenz in Sekunden zwischen Serverzeit und Mitternacht  
  
// ------------------------------------------------------  
  
echo '<script type="text/javascript">';  
echo 'var id="";';  
echo 'var t1;';  
echo 'var diff='.$sum.';'; // Differenzvariable von PHP (siehe oben)  
  
echo 'function timetozero() {';  
echo 'var time=new Date();';  
echo 't1=time;'; // Userzeit  
echo 'if(id=="") { zaehlen(); }';  
echo '}';  
  
echo 'function zaehlen()';  
echo '{';  
echo 'var t2=new Date();';  
echo 'var tdif=t2-t1;';  
echo 'var ts=tdif/1000;';  
echo 'ts=Math.round(ts);';  
  
echo 'var t2dif=diff-ts;';  
  
echo 'var std = Math.floor(t2dif % 84600 / 3600);';  
echo 'var min = Math.floor(t2dif%3600 / 60);';  
echo 'var sek = t2dif%60;';  
  
echo 't.h.value=std;';  
echo 't.m.value=min;';  
echo 't.s.value=sek;';  
  
echo 'id=setTimeout("zaehlen()",10);';  
echo 'document.write(h "<br>");';  
echo '}';  
  
echo '</script>';  
// ------------------------------------------------------  
?>  
</head>  
  
  
<body onload="timetozero();">  
  
  
<form name="t">  
<input type="text" size="5" name="h">:<input type="text" size="5" name="m">:<input type="text" size="5" name="s">  
</form>  
  
  
</body>  
</html>  

Eigentlich möchte ich die Zeit wirklich als Text ausgeben und nicht in diesen "Input"-Boxen.
Ebenfalls bin ich leider am Ende wegen dem Reload...

Hoffe, irgend jemand kann mir helfen!!!

Gruß K_Kurt

  1. Hallo!

    Für die Ausgabe als Text einfach

      
    <span id="timer-h">12</span>:<span id="timer-m">42</span>:<span id="timer-s">00</span>
    

    nehmen und dann per document.getElementById('timer-m').innerHTML = minuten; befüllen.

    Der Rest vom Code ist doch schon ganz brauchbar :-) Du hast Deine Hausaufgaben gemacht und den Modulo verwendet.

    Gruß, LX

    --
    RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
    RFC 1925, Satz 11a: Siehe Regel 6a
    1. document.getElementById('timer-m').innerHTML = minuten;

      Da habe ich jetzt nur noch drei Fragezeichen...

      1. Was steht den in "minuten" drin? Da sollte die Zahl der Minuten drinstehen. Wenn Du noch ganz gewitzt sein willst, kannst Du noch ein Padding einbauen.

        statt minuten dann (minuten < 10 ? '0' : '')+minuten;

        Gruß, LX

        --
        RFC 1925, Satz 6a: Es ist immer möglich, einen weiteren Umweg einzufügen.
        RFC 1925, Satz 11a: Siehe Regel 6a