# Countdown - hh:mm:ss



## reflex (13. Januar 2004)

Hallo,
ich suche einen Counter der im folgenen Format hinunterzählt: hh:mm:ss .
Beispiel:
03:13:59...

Das Startformat sollte in Sekunden angegeben werden. Wenn der Counter abgelaufen ist, soll einfach ein Text mit Link ausgegeben werden.

00:00:00
<a href="dieurl.htm">weiter</a>

Jetzt meine letzte Bitte, der Couter sollte mögichst in allen Browsern funktionieren.

Hoffentlich kann mir einer von euch helfen.

MfG reflex

PS// Ich habe die ganze Suche durchforstet, bei  google gesucht, und schon probiert scripte zu ändern. <-- Leider ohne Erfolg.


----------



## Fabian H (13. Januar 2004)

Komisch nur, dass ich gerade mal ein paar Sekunden gebraucht hab, um etwas 
zu finden:
http://www.tutorials.de/tutorials140711.html

Oder ist es nicht das, was du willst?


----------



## reflex (13. Januar 2004)

Nein sorry, das hatte ich auch schon gefunden 

1. Wird das in Monat - Tag - Stunde - Minute und Sekunde angezeigt
2. Ist der Startwert nicht in Sek. (Oder ich finde ihn nicht ?)
3. Will ich kein Datum, sondern lediglich: H - M - S angezeigt bekommen.

Trotzdem danke für deinen Post.
Ich dachte, das vielleicht jemand noch so ein Script parat hat..

mfg reflex (PS: Bitte nicht vergessen ich bin absoluter javascript anfänger )


----------



## Sven Mintel (14. Januar 2004)

```
<script type="text/javascript">
<!--
start=18000;
function countDown()
{
if(start>0)
  {
  start--;
  time=new Array();
  time[0]=parseInt(start/3600);
  time[1]=parseInt((start%3600)/60);
  time[2]=start%60;
  for(var k in time){if(time[k]<10){time[k]='0'+time[k];}
    }
  document.getElementById('counter').innerHTML=time.join(':');
  setTimeout('countDown()',1000);
  }
else
  {
  document.getElementById('counter').innerHTML+=
  '<br><a href="dieurl.htm">weiter</a>';
  }
}
if(document.getElementsByTagName&&
     document.getElementsByTagName('title')[0].innerHTML)
     {
     document.write('<span id="counter">&nbsp;</span>');
     setTimeout('countDown()',1000);
     }
//-->
</script>
```
Die Sekunden gibst du bei "start" an.
Das Skript gehört in die Seite dorthin, wo der Countdown erscheinen soll.
Wo der Link zu ändern ist, findest du schon raus 
Läuft in IE5+,Mozilla,Opera7,Netscape7


----------



## reflex (14. Januar 2004)

DANKE!  
Funktioniert alles bestens. =)


----------



## PhilXYLON (7. März 2004)

Hallo,
bei mir funktioniert der script nicht 
stimmt mit dem script etwas nich? THX Phil


----------



## Sven Mintel (7. März 2004)

Was soll an dem Skript nicht stimmen....hier läuft es.
Das Copy&Paste muss man schon selbst erledigen..


----------



## PhilXYLON (7. März 2004)

top 
ich danke dir...
hatte das <script> in head reingemacht


----------



## PhilXYLON (9. März 2004)

Hallo,
ist es möglich auf einer Seite den script mehrmals zu verwenden ?
wenn ich es verusche, zählt immer nur einer..
woran liegt dies ?

DANKE


----------



## Sven Mintel (10. März 2004)

Nö...mit dem gehts nicht... Habs a bisserl umgeschrieben... jetzt gehts auch mit mehreren:

```
<script type="text/javascript">
<!--
counterArr=new Array();
function myCounter(start,url,txt)
{
if(document.getElementsByTagName&&
     document.getElementsByTagName('title')[0].innerHTML)
     {
     counterArr.push(new Array(start,url,txt));
     if(counterArr.length==1){setTimeout('countDown()',1000);}
     return '<span id="counter'+(counterArr.length-1)+'">&nbsp;</span>';
     }
return '';
}

function countDown()
{
run=false;
for(var key in counterArr)
    {
    if(counterArr[key][0]>0)
        {
        counterArr[key][0]--;
        time=new Array();
        time[0]=parseInt(counterArr[key][0]/3600);
        time[1]=parseInt((counterArr[key][0]%3600)/60);
        time[2]=counterArr[key][0]%60;
        for(var k in time)
            {
            if(time[k]<10){time[k]='0'+time[k];}
            }
        document.getElementById('counter'+key).innerHTML=time.join(':');
        run=true;
        }
    else if(counterArr[key][0]==0)
        {
        document.getElementById('counter'+key).innerHTML+=
        '<br><a href="'+counterArr[key][1]+'">'+counterArr[key][2]+'</a>';
        counterArr[key][0]=-1;
        }
    }
if(run){setTimeout('countDown()',1000);}
}
//-->
</script>
```
Das Skript kann diesmal in den <head>....oder ausgelagert werden.

Der Aufruf in der Seite erfolgt an der entsprechenden Stelle per:

```
<script type="text/javascript">
<!--
document.write(myCounter(123,'http://www.tutorials.de','Tutorials'));
//-->
</script>
```
... also als Parameter jeweils [Laufzeit][Linkziel][Linktext]

-->Test


----------



## PhilXYLON (11. März 2004)

Ich danke dir es funktioniert !
Aber kannst du es noch so machen, das wenn er fertig ist, nur "Beendet" dasteht ? ohne 00:00:00 und dem link ?

Wäre top von dir 

Phil


----------



## Sven Mintel (12. März 2004)

Nö,keine Lust....
Kannst es aber gerne selber machen, ich gestatte hiermit dir und jedem anderen Interessenten, Modifikationen an dieser Software vorzunehmen


----------



## PhilXYLON (12. März 2004)

ich habs probiert, aba ich bekomme das 00:00:00 nich weg, wenn er fertig is mit dem runterzählen ...


----------



## Sven Mintel (12. März 2004)

Es sollte eigentlich genügen, den else IF-Abzweig zu ersetzen durch
	
	
	



```
else if(counterArr[key][0]==0)
        {document.getElementById('counter'+key).innerHTML='beendet';        }
```


----------



## PhilXYLON (12. März 2004)

Ne, da steht jetzt "00:00:00Beendet" da ...
aba die ollen nullen sollen wech


----------



## Sven Mintel (13. März 2004)

Wenn du schreibst:
...innerHTML='beendet';


sollte dort auch nur "beendet" stehen


----------



## PhilXYLON (14. März 2004)

es steht ja auch da beendet, aber auch 00:00:00 und das sieht *** aus  
es soll nur Beendet dastehen ... mehr nich


----------



## Sven Mintel (14. März 2004)

Wenn du den Code genauso nimmst, wie ich ihn gepostet habe, stehen keine Nullen da........ansonsten musst du dir jemanden suchen, welcher eine ausgefeiltere Copy&Paste-Technik sein eigen nennt


----------



## PhilXYLON (15. März 2004)

Ich muss mich entschuldigen, ich habe einen fehler wo gemacht, es funktioniert richtig 

Big THX!


----------



## Sven Mintel (16. März 2004)

hast wohl das "+" drinnengelassen?


----------



## PhilXYLON (16. März 2004)

kein plan...
hab alles nochmal von anfang an gemacht, und siehe da, es ging doch wies soll


----------



## coReDaRk (24. Juni 2004)

Also erstmal der Counter is schon Top  thx dafür, aaber ich brauch ein der auch weiterzählt wenn man net auf der seite is 

hab kein plan wie man das macht ^^ hab auch schon das halbe internet durchwühlt, naja wäre nett wenn jemand helfen könnte...


----------



## WolfFtl (15. Oktober 2004)

Sorry, habe gleich Deine Überschrift genommen. Ich suche einen besonderen Java-
Countown. Habe einen Homeserver und der schaltet sich 24.00 Uhr ab. Da wollte ich auf die Homepage, die da läuft einen Countown einbauen, der täglich bis 24.00 die Zeit
abzählt:

*Shoutown des Servers in*

*   4 Stunden 30 min   10 sec * 

Am nächsten Tag sollte er wieder zählen.


----------



## Kampfkeks (28. November 2004)

thx für den countdown. sowas such ich schon länger, dank euch hab ichs endlich gefunden 
gruß KeKz


----------



## con-f-use (28. November 2004)

Ihr beide habt im Prinzip ein ähnliches Problem. Wenn ihr's richtig machen wollt müsst ihr euch erstmal über ne serverseitige Sprache wie php die Serverzeit in Sekunden holen:
	
	
	



```
<?php
 $h = date("G");
 $m = date("i");
 $s = date("s");
 $server_starttime = $h*3600 + $m * 60 + $s;
 ?>
```
Dann die Serverzeit an *JavaScript (nicht Java)* übergeben:
	
	
	



```
var server_starttime = <?php echo $server_starttime; ?>
```
 So kennt javascript die Serverzeit. Man kann hier nicht mit Javascript arbeiten, weil alle Leute, die eure Seite aufrufen ne andere Zeit haben, oder sie sie verstellen, damit der countdown vielleicht früher oder später.

       Von dieser Serverzeit ausgehend errechnest du *WolfFtl *einfach in JavaScript die *Sekunden, die noch bis 24 Uhr bleiben* (86400 - server_starttime) und setzt sie als Startzeit in den Coutndown von Sven ein. Das sähe dann ein wenig abgekürzt so aus:
	
	
	



```
<html><head><title>bla</title></head><body>
  <script language="javascript">
  [Hier kommt das Script von Sven hin]
  
 document.write(myCounter(<?php echo 86400 - date("G")*3600 - date("i")*60 - date("s"); ?>,'http://www.tutorials.de','Tutorials'));
  </script>
  </body>
```
 
       Du *coReDaRk *errechnets am besten mit ner Serverseitigen Sprache noch den Zeitpunkt in Sekunden, wenn der Timer abgelaufen ist, errechnest die *Differenz aus der jetzigen und der Zeit wenn der Timer abgelaufen ist* und setzt die dann in den Coutndown von Sven als start ein.

*  P.S.
 Geht nur auf Servern (könnt es als nicht im browser testen), auf denen php installiert ist und ihr müsst die datei auch irgentwas.php und nicht irgentwas.html nennen.*


----------

