Forenindex » Programmierung/Entwicklung » JavaScript » countdown

countdown

pat87
Beiträge gesamt: 581

30. Mai 2004, 12:21
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
hallo zusammen, kennt da jemand ein nettes script, mit dem ich einen countdown auf meine homepage einbauen kann, der dann die tage bis zu einem bestimmten datum herunterzählt?

vielen dank schon im voraus...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

countdown

SabineP
Beiträge gesamt: 7586

30. Mai 2004, 12:26
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
Hallo Pat, klar gibt´s das.
Lies mal hier nach:
http://www.hilfdirselbst.ch/...1&topic_id=16462

Gruß Sabine

countdown

pat87
Beiträge gesamt: 581

30. Mai 2004, 13:42
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
es geht aber nicht... es steht immer 'undefined day'

an was liegt das?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

countdown

SabineP
Beiträge gesamt: 7586

30. Mai 2004, 20:29
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
Und wie sieht Dein Code aus? Gibt es einen Link dazu?
Gruß Sabine

countdown

pat87
Beiträge gesamt: 581

30. Mai 2004, 22:22
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
der code sieht so aus: nein, es gibt (noch) keinen link...

<html>

<head>
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
<title>pat87.ch | home</title>
<link rel="SHORTCUT ICON" href="http://www.pat87.ch/...res/favicon.ico">
<script>
var futureyear=2004
var futuremonth=6
var futureday=24
var displaytype="showdays"
var digitordate="isdate"
var aftercountdown="stopit"
var digitfrom=100
var digitto=0
var speed=1

var countdownid=new Array()
var futuredate
var nowdate
var resulthoursraw
var resulthours
var resultminutesraw
var resultminutes
var resultsecondsraw
var resultseconds

var p_seconds
var p_minutes
var p_hours
var p_days

var resultsecondsonly
var resultminutesonly
var resulthoursonly
var content

var i_countdown=-1
var countdownid

var step=1
speed*=1000

if (digitfrom>digitto) {step=-1}
if (digitfrom<digitto) {step=1}

var browserinfos=navigator.userAgent
var ns4=document.layers
var ie4=!document.getElementById&&document.all&&!browserinfos.match(/Opera/)
var ie5=document.getElementById&&document.all&&!browserinfos.match(/Opera/)
var ns6=document.getElementById&&!document.all&&!browserinfos.match(/Opera/)
var opera=browserinfos.match(/Opera/)

function setfuturedate() {
futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
if (digitordate=="isdigit") {content=digitfrom-step }
docountdown()
}

function docountdown() {
if (digitordate=="isdate") {
calculateresults()
formatresults()
displayresults()
setTimeout("docountdown()",speed)
}
else if (digitordate=="isdigit") {
content+=step
displayresults()
if (content==digitto) {
setTimeout("happensafter()",speed)
}
else {
setTimeout("docountdown()",speed)
}
}
}

function firstcountdown() {
if (digitordate=="isdate") {
futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
calculateresults()
formatresults()
}
else if (digitordate=="isdigit") {
content=digitfrom
}
}

function calculateresults() {
nowdate=new Date()
resultdaysraw=(Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24
if (displaytype!="showall") {
resultsecondsonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000)
resultminutesonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60)
resulthoursonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60)
}
else {
resultdays=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24)
resulthoursraw=(resultdaysraw-resultdays)*24
resulthours=Math.floor((resultdaysraw-resultdays)*24)
resultminutesraw=(resulthoursraw-resulthours)*60
resultminutes=Math.floor((resulthoursraw-resulthours)*60)
resultsecondsraw=(resultminutesraw-resultminutes)*60
resultseconds=Math.floor((resultminutesraw-resultminutes)*60)
}
}

function formatresults() {
if (displaytype=="showall") {
if (resultdays>1) {p_days="days"}
else {p_days="day"}
if (resultminutes<10) {resultminutes="0"+resultminutes}
if (resultseconds<10) {resultseconds="0"+resultseconds}
content=resultdays+" "+p_days+" "+resulthours+"h "+resultminutes+"m "+resultseconds +"s"
}
else if (displaytype=="showdays") {
if (resultdays>1) {p_days="days"}
else {p_days="day"}
content=resultdays+" "+p_days
}
else if (displaytype=="showhours") {
content=resulthoursonly+" hrs"
}
else if (displaytype=="showminutes") {
content=resultminutesonly+" min"
}
else if (displaytype=="showseconds") {
content=resultsecondsonly+" sec"
}
}

function happensafter() {
if (aftercountdown=="repeatit") {
if (digitordate=="isdigit") {content=digitfrom-step}
docountdown()
}
if (aftercountdown!="stopit" && aftercountdown!="repeatit") {
document.location.href=aftercountdown
}
}

function displayresults() {
if (ie4) {
for (i=0;i<=countdownid.length-1;i++) {
var thisclock=eval(countdownid)
thisclock.innerHTML=content
}
}
else {
for (i=0;i<=countdownid.length-1;i++) {
document.getElementById(countdownid).innerHTML=content
}
}
}

function setcountdown() {
if (ns4 || ie4 || ie5 || ns6 || opera) {
firstcountdown()
i_countdown++
countdownid[i_countdown]="countdown"+i_countdown
document.write("<span id='"+countdownid[i_countdown]+"' style='position:relative'>"+content+"</span>")
}
}

if (ie4 || ie5 || ns6 || opera) {
onload=setfuturedate
}
</script>
</span>
</head>

<body bgcolor="#ff9a2d" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellpadding="0" cellspacing="0" height="100%">
<tr>
<td valign="top" align="center">
<table width="720" border="0" cellspacing="0" cellpadding="0" height="300">
<tr>
<td valign="top" align="center">
<font size="2" face="verdana">
<table width="720" border="0" cellspacing="0" cellpadding="0" height="35">
<tr>
<td align="center" valign="top">
</td>
</tr>
</table>
</font>
<table width="720" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top">
<font face="verdana" size="1">
<script language="JavaScript">
today = new Date()
if(today.getMinutes() < 10){
pad = "0"}
else
pad = "";
document.write ;if((today.getHours() <=6) && (today.getHours() >=9)){
document.write("guten morgen")
}
if((today.getHours() >=10) && (today.getHours() <=11)){
document.write("guten morgen!")
}
if((today.getHours() >=12) && (today.getHours() <=16)){
document.write("einen sch&ouml;nen nachmittag w&uuml;nsche ich!")
}
if((today.getHours() >=17) && (today.getHours() <=23)){
document.write("guten abend!")
}
if((today.getHours() >=0) && (today.getHours() <=4)){
document.write("bist du nicht m&uuml;de um diese zeit?")
}
if((today.getHours() >=4) && (today.getHours() <=6)){
document.write("wow! du bist aber fr&uuml;h auf!")
}
</script>
</font>
<hr noshade size="1" width="85%">
</td>
</tr>
</table>

<table width="720" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<font face="verdana" size="1"><marquee scrollamount="5" width="720" height="16" behavior="scroll" loop="infinite" align="middle">dvd-&uuml;bersicht ist neu gestaltet | dvd-&uuml;bersicht erh&auml;lt ein feedback-formular</marquee></font>
</td>
</tr>
</table>
</td>
</tr>
<tr><td align="center"><font face="verdana" size="1"><script>setcountdown()</script></font></td>/tr>
</table>
</td>
</tr>
</table>
</body>

</html>



mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

countdown

SabineP
Beiträge gesamt: 7586

31. Mai 2004, 10:36
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
Hallo Pat, das Script ist leider fehlerhaft, so daß displaytype="showdays" nicht funktioniert.
Ändere diese Zeilen, dann klappt es:


function calculateresults() {
nowdate=new Date()
resultdaysraw=(Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24
// if (displaytype!="showall") {
resultsecondsonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000)
resultminutesonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60)
resulthoursonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60)
// }
// else {
resultdays=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24)
resulthoursraw=(resultdaysraw-resultdays)*24
resulthours=Math.floor((resultdaysraw-resultdays)*24)
resultminutesraw=(resulthoursraw-resulthours)*60
resultminutes=Math.floor((resulthoursraw-resulthours)*60)
resultsecondsraw=(resultminutesraw-resultminutes)*60
resultseconds=Math.floor((resultminutesraw-resultminutes)*60)
// }
}

Gruß Sabine

countdown

pat87
Beiträge gesamt: 581

31. Mai 2004, 10:47
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
jetzt geht es zwar, aber er zeigt mir auf den 24. 6. 2004 noch 53 tage an...

und wie kann ich es ändern, dass dort 'tage' und nich 'days' stehen?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

(Dieser Beitrag wurde von pat87 am 31. Mai 2004, 11:05 geändert)

countdown

pat87
Beiträge gesamt: 581

31. Mai 2004, 11:08
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
das mit 'tagen' und nicht 'days' habe ich lösen können...

hier noch der link: http://www.pat87.ch/in_bearbeitung/ und zwar bei home ist es der mittlere frame...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

countdown

Anonym
Beiträge gesamt: 22827

31. Mai 2004, 11:18
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
Hallo Pat,

für den 24.6. 2004 schreibst Du in´s Script:

var futureyear=2004
var futuremonth=5
var futureday=24

Gruß Sabine

countdown

pat87
Beiträge gesamt: 581

31. Mai 2004, 11:25
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen

countdown

SabineP
Beiträge gesamt: 7586

31. Mai 2004, 11:56
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
Weil der Januar der Monat 0 ist, futuremonth=0
Und jetzt frag mich bitte nicht, warum der Januar der Monat 0 ist. :-)
Das Script wurde so programmiert.

Gruß Sabine

countdown

pat87
Beiträge gesamt: 581

31. Mai 2004, 12:48
Bewertung:

gelesen: 3964

Beitrag als Lesezeichen
ok, ich werde dich das nicht fragen...

aber, ...

noch vielen dank für die korrekturen dieses scriptes

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/