Wer kann script für counter anpassen ?

Okay ich hab dann mal was für dich geschrieben, denn so einfach wie da oben geht's dann doch nicht. Immerhin kann man bei einer Zeitpunktdifferenz ja nicht das date()-Objekt verwenden um das ganze in Jahre und Monate umzurechnen - bei Tagen und allem Kleineren geht das weil die einen fest Umrechnungsfaktor haben, aber Jahre und Monate haben unterschiedlich viele Tage.

Hier also das Script (ich schreibe alle immer auf Englisch):
HTML:
<html><head><title>Alter</title>
 
 <script type="text/javascript"><!--
            
            //Initial variables (without leading zeroes)
            var b_m = 43, 		//Minutes of birth-time
       	b_h = 18,		//Hours of birth-time
       	b_d = 24,		//Days of birth
       	b_M = 2,		//Months of birth
       	b_y = 1986;		//Year of birth
            
            function counter(id){
            	var m=0,h=0,d=0,M=0,y=0;
            	var now = new Date();
            	n_m = now.getMinutes();
            	n_h = now.getHours();
            	n_d = now.getDate();
            	n_M = now.getMonth()+1;
            	n_y = now.getFullYear();
 	var monthdays = new Array(31,31,(( n_y % 4 == 0 && ( n_y % 100 != 0 || n_y % 400 == 0)) ? 29 : 28),31,30,31,30,31,31,30,31,30,31);
            	
            	if (n_m<b_m) {
            		m = 60 + n_m - b_m;
            		h--;
            	} else { m = n_m - b_m; }
            	if (n_h<b_h) {
            		h += 24 + n_h - b_h;
            		d--;
            	} else { h += n_h - b_h; }
            	if (n_d<b_d) {
            		d += monthdays[(n_M-1)] + n_d - b_d;
            		M--;
            	} else { d += n_d - b_d; }
            	if (n_M<b_M) {
            		M += 12 + n_M - b_M;
            		y--;
            	} else { M += n_M - b_M; }
            	y += n_y - b_y;
            	
            	display = "Du bist " +
            		((y>0) ? + y + ((y==1)? " Jahr, " : "Jahre, ") : "") +
            		((M>0) ? + M + ((M==1)? " Monat, " : " Monate, ") : "") +
            		((d>0) ? d + ((d==1)? " Tag, " : " Tage, ") : "") +
            		((h>0) ? + h + ((h==1)? " Stunde, " : " Stunden, ") : "") +
            		((m>0) ? + m + ((m==1)? " Minute" : " Minuten") : "") +
            		" alt.";
            
            	document.getElementById(id).innerHTML = display;
            }
 
 //--></script>
        
        </head><body onLoad="counter('countdown')">
            
            <div id="countdown"></div>
 
 </body></html>
Hab mal mein Geburtsdatum zum Test eingegeben: 24.02.1986 um 18:43 Uhr.

P.S.
An die Moderatoren: Warum hackt das Forum eigentlich bei de.vu-Adressen das Suffix ab und wieso geröt in HTML-Tags meine Indentation immer durcheinandern (für Letzteres siehe die Zeilen "var monthday = ..." und die vier unter "var b_m =...") ?
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück