Counter??

Ich hätte da mal eine Frage zu einem Counter:
Ich suche schon seit stunden bei google nach einem script für ein countdown, aber ich finde immer nur welche, die nur einmal auf ein event zählen können :frowning:
Ich suche aber ein Counter der auf ein Event das einmal pro woche ist hinzählt. (Wenn dieses Event gewesen ist, das er dann von vorne anfängt zu dem nächsten event weiterzählt)
Bsp zu diesen beiden terminen:
Montag 07.50 Event 1
Freitag 20.15 Event 2
Wenn er bi montag gezählt hat soll er nach Freitag weiterzählen, und dann wieder zu Montag Freitag Montag…

Wäre das irgendwie möglich??

Ja, du bestimmst welcher Tag näher liegt und generierst dann die passende Zeit dafür, um die Differenz zum aktuellen Zeitpunkt zu bestimmen.

N43

RE

javascript
->self html

Doll, nur wie mach ich sowas??

auch mit PHP machbar… willse, dass er dann immernoch runterzählt, während man auf der Seite ist oder beim neu aufrufen halt die aktuelle zeit steht seid dem Aufrufen.

Denn ohne das Runterzählen kann ich dir das Script in PHP basteln

Interaktiv != PHP

Er möchte, dass sich die Zeit „bewegt“/ändert.

MfG, matibaski

edit: Hab da mal so per Zufall 'ne Seite gefunden, die nen Counter hatte.
Hier ist der Quelltext-Teil:
[html]

[/html]
Hier, die Seite selbst: (Du solltest sie in weniger als 8 Tagen besuchen. Die haben das nur da, wegen einem Update)
http://www.habbocenter.ch

@maltibaski: ist das so ein script, das die funktion hat, das ich suche??

Ja musst sie nur noch umsetzen :wink:

MfG, matibaski

Sorry, aber mit Java Script kenne ich mich nicht wirklich gut aus, könntest du mir das mal erklären??

Ich bin auch nicht die helle Leuchte.
Kann dir da nicht vieles erklären.

Irgendjemand der sich mit JS gut auskennt, wird dir sicherlich erklären können.

MfG, matibaski

Schade :-?

@ all, hat jemand eine Idee zu meinem Problem??

@matibaski: das Script geht nur mit 'nem festen Datum.

Ich hab mal 'n Script dafür geschrieben und auf meiner Seite hochgeladen.

Hier der Code.

[html]

Test // Klasse um ein Event besser zu verwalten function Event (D, H, M, Name) { this.Day = D; this.Hour = H; this.Minute = M; this.Name = Name; }
     /*
      * Klasse EventHandler
      * verwaltet Events, es kann nur 1 Event pro Tag geben,
      * ansonsten funktioniert die Klasse nicht richtig
      */
     function EventHandler()
     {
        var EventList = new Array();
        var EventID = -1;
        var EventStart = 0;

        /*
         * Den Namen des durch nextEvent() ermittelten Events bestimmen
         */
        function getEventName()
        {
           return EventList [EventID].Name;
        }
        
        this.getEventName = getEventName;

        /*
         * Den Start des durch nextEvent() ermittelten Events bestimmen
         */
        function getEventStart()
        {
           return EventStart;
        }
        
        this.getEventStart = getEventStart;

        /*
         * Event hinzufügen,
         * nextEvent() muss danach aufgerufen werden,
         * damit das aktuelle Event auch geladen ist
         */
        function addEvent (E)
        {
           EventList.push (E);
        }
        
        this.addEvent = addEvent;

        /*
         * nächstes Event bestimmen
         */
        function nextEvent() {
           var Now = new Date();
           var Day = Now.getDay();

           // nächstes Event bestimmen (nur 1 pro Tag!)
           var Nearest = 21;
           var NearestID = -1;
           for (var i = 0; i < EventList.length; ++i) {
              var Dif = EventList [i].Day - Day;
              // tritt das Event erst nächste Woche ein?
              if (Dif < 0)
                 Dif += 7;

              if (Dif < Nearest) {
                 // continue, falls das Event heute statt findet
                 // und bereits vorbei ist
                 if (0 == Dif &&
                       (EventList [i].Hour < Now.getHours())
                        || (EventList [i].Hour == Now.getHours()
                             && EventList [i].Minute <= Now.getMinutes()))
                 {
                    continue;
                 }
                    
                 Nearest = Dif;
                 NearestID = i;
              }
           }

           // Datum anlegen, dass das nächste Event enthält
           // laut selfHTML muss der Tag zwischen 0 und 30 liegen,
           // IE und FF haben Überlaufe aber richtig behandelt
           var Event = new Date (Now.getFullYear(),
                                   Now.getMonth(),
                                   Now.getDate() + Nearest,
                                   EventList [NearestID].Hour,
                                   EventList [NearestID].Minute,
                                   0);
                                   
           EventID = NearestID;
           EventStart = Event.getTime();
        }
        
        this.nextEvent = nextEvent;
     }

     // Event-Handler, wird in startEventTimer() initialisiert
     var EHandler = null;
     
     // das Timer Objekt,
     // wird benötigt, falls der Timer angehalten werden soll, etc
     var timer = null;

     /*
      * Timer initialisieren, EventListe laden
      */         
     function startEventTimer()
     {
        EHandler = new EventHandler();
        
        // Event 1 hinzufügen (Montag, 15:18 Uhr, Titel: "Montag"
        EHandler.addEvent (new Event (1, 15, 8, "Montag"));
        // Event 2 hinzufügen (Donnerstag, 14:00 Uhr, Titel: "Donnerstag"
        EHandler.addEvent (new Event (4, 14, 00, "Donnerstag"));
        // nächstliegende Event laden
        EHandler.nextEvent();
        // Timer initialisieren
        timer = window.setInterval("update()", 1000);
     }
     
     /*
      * verantwortlich für den Countdown, gesetzt in startEventTimer()
      * aktualisiert die Meldung auf der Seite
      */
     function update()
     {
        var Countdown = EHandler.getEventStart() - (new Date()).getTime();

        // Event ist bereits eingetreten?
        // dann nächstes Event laden
        if (0 >= Countdown) {
           EHandler.nextEvent();
           Countdown = EHandler.getEventStart() - (new Date()).getTime();
        }
        
        // Meldung ausgeben
        var Message = "Naechstes Event: " + EHandler.getEventName() + "<br />";
        Message += "Noch " + Math.floor (Countdown / (60 * 60 * 1000)) + " Stunden, ";
        Message += Math.floor (Countdown / (60 * 1000)) % 60 + " Minuten und ";
        Message += Math.floor (Countdown / (1000)) % 60 + " Sekunden";
        document.getElementById ("Event").innerHTML = Message;
     }
     
     startEventTimer();
  </script>
  <div id="Event"></div>
[/html]Einzige Einschränkung: Es darf nur 1 Event pro Tag geben.

Ich hoffe die Kommentare sind einigermaßen verständlich, in der Funktion startEventTimer() werden die Ereignisse hinzugefügt.