Seite 2 von 3

Verfasst: 24.08.2006 00:32
von easygo
Xwitz hat geschrieben:Das gibt an wie oft seit Beginn der "Zeitrechung" 5 Minuten vergangen sind. Läßt man sich über Modulo den Rest der Division dieser Zahl durch die Anzahl der möglichen Header ausgeben, bekommt man eine Zahl die aller 5 Minuten um 1 erhöht wird (bis zur Anzahl der Header - 1 dann wieder 0) und immer zwischen einschließlich 0 und der Anzahl der Header - 1 liegt. Genau das was man braucht.
Na wenigstens einer hier, der ein Problem erklären kann. Danke

Und an den Neusupporter:

Hochmut kommt vor dem Fall! Weiter so :wink: easy

Verfasst: 24.08.2006 01:00
von Banger
easygo hat geschrieben:Und an den Neusupporter:

Hochmut kommt vor dem Fall! Weiter so :wink: easy
Wie kommst Du auf Hochmut?
Ich habe eine von mir erstellte, getestete und für funktionsfähig befundene Lösung präsentiert, die Du mangels Kenntnis, Konzentration oder genügend Auseinandersetzung als falsch deklariert hast - offensichtlich ohne in Erwägung zu ziehen, vor Deiner Behauptung nach der Funktionsweise zu fragen. Sich zu weit aus dem Fenster zu lehnen kann auch unangenehme Stürze nach sich ziehen. :wink:

Da die Frage nach unserer Kompetenz mit diesem Thema aber nichts am Hut hat und nichts weiter zur Lösung beiträgt: EOD.

Verfasst: 24.08.2006 01:24
von easygo
Banger hat geschrieben:Wie kommst Du auf Hochmut?
Na wie wohl? Da kommst du bestimmt von selbst drauf.
Banger hat geschrieben:Ich habe eine von mir erstellte, getestete und für funktionsfähig befundene Lösung präsentiert
Schön zu wissen, denn auf Seite 1 steht davon nichts.

Oder ist "Beispiel" dasselbe?
easygo hat geschrieben:Unix-Timestamp / 300 ? :-? easy
Das war nochmal die Frage bzw. das Problem. Xwitz hats erkannt / easy

Verfasst: 24.08.2006 01:28
von Pyramide
Nun streitet euch doch nicht...

Verfasst: 24.08.2006 10:02
von Xwitz
Banger hat geschrieben:Wie kommst Du auf Hochmut?
Ich dachte er meint sich selbst, weil er "ungetestet" meinte, daß was nicht aufgeht.

Verfasst: 24.08.2006 11:15
von Banger
Zurück zum Thema.

Hier das ganze als JavaScript - wichtig ist, dass die Arrayindizes mit 0 beginnen (anstatt, wie in Dominiks Original, mit 1), sonst funktioniert es nicht wie gewünscht...

Code: Alles auswählen

<script language="JavaScript" type="text/javascript">
<!--
var image = new Array();
var link  = new Array();

var diff_min = 5;//Zeitdifferenz in Minuten

/** Hier die (Zufalls)-Bilder eintragen. **/

image.push('http://www.coaster-park.de/forum/zufall/1.jpg');
image.push('http://www.coaster-park.de/forum/zufall/2.jpg');
image.push('http://www.coaster-park.de/forum/zufall/3.jpg');
image.push('http://www.coaster-park.de/forum/zufall/4.jpg');
image.push('http://www.coaster-park.de/forum/zufall/5.jpg');
image.push('http://www.coaster-park.de/forum/zufall/6.jpg');
image.push('http://www.coaster-park.de/forum/zufall/7.jpg');
image.push('http://www.coaster-park.de/forum/zufall/8.jpg');
image.push('http://www.coaster-park.de/forum/zufall/9.jpg');

/** Hier die (Zufalls)-Links eintragen. **/

link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');
link.push('http://www.coaster-park.de/forum/index.php');

/** Ab hier nichts mehr ändern! **/

var buf = new Date();
var tbase = Math.floor((buf.getTime() / 1000) / (60 * diff_min));

var ran = tbase%image.length;

document.write('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" alt="'+ran+'" /><'+'/a>');
//-->
</script> 

Verfasst: 24.08.2006 16:00
von easygo
Xwitz hat geschrieben:
Banger hat geschrieben:Wie kommst Du auf Hochmut?
Ich dachte er meint sich selbst, weil er "ungetestet" meinte, daß was nicht aufgeht.
War das so ein nachgeschobener Xwitz? @ Banger

Lass mal stecken.. für mich gehts auch weiterhin so nicht auf btw.

Unix-Timestamp ist nun mal zeitzonenabhängig. easy

Verfasst: 24.08.2006 16:33
von Banger
easygo hat geschrieben:Lass mal stecken.. für mich gehts auch weiterhin so nicht auf btw.

Unix-Timestamp ist nun mal zeitzonenabhängig. easy
Hi easy,
wieso geht das nicht auf? Hast Du es getestet und Fehler gefunden oder handelt es sich um ein reines Verständnisproblem? Den Algorithmus hat Xwitz doch schon ziemlich verständlich erklärt.

Setz Dich doch bitte noch einmal genauer mit der Problemstellung auseinander: Es geht darum, dem User alle x Minuten ein anderes Banner zu präsentieren, ohne den letzten Zwischenstand irgendwo abzulegen. Dafür muss man eine Konstante als Zeitbasis verwenden, von der man ausgeht - der Timestamp (bzw. der Timestamp-Wert 0) bietet sich dafür mit Goldauszeichnung an.

Es ist nicht die Aufgabenstellung, allen Usern synchron ein anderes Banner zu präsentieren (was übrigens mit der serverseitigen PHP-Lösung funktionieren würde, denn die Zeiteinstellung auf dem Server ist für alle Benutzer gleich).
In der Hinsicht unterliegt die JS-Lösung natürlich der üblichen Problematik von clientseitigen Anwendungen und hängt in diesem Fall von der Zeiteinstellung des Users ab - was aber zu vernachlässigen ist; denn (davon ausgegangen, der User ändert nicht laufend seine Systemzeit ;-)) auch so bekommt User Y alle x Minuten ein neues Banner präsentiert. Ob das bei User Z (an einem anderen PC) nun zwei Minuten vorher oder nachher passiert, ist vollkommen schnurz, denn für jeden einzelnen User bleibt der absolute Zeitabstand bis zum nächsten Wechsel gleich.

Im übrigen ist der Unix-Timestamp in keinster Weise von der lokalen Zeitzone abhängig; der Timestamp repräsentiert die Anzahl der vergangenen Sekunden seit dem 01.01.1970 00:00:00 UTC; die Berücksichtigung der lokalen Zeitzone erfolgt erst mit Verwendung der Datumsfunktionen (date() etc.).
Siehe auch http://de.wikipedia.org/wiki/Unixzeit

Verfasst: 24.08.2006 16:36
von TheRenegate
Hab ne ganz lustige idde, lade dir AniMake runter, und verbinde alle Billder mit einem Abstand von 5min. ;)

Verfasst: 24.08.2006 16:53
von easygo
Banger hat geschrieben:wieso geht das nicht auf? Hast Du es getestet und Fehler gefunden oder handelt es sich um ein reines Verständnisproblem?
Hm, mit dem Testen hab ich grad ein Problem, also B ? :-?

Dass für alle der gleiche Timestamp erstellt wird, war mir wohl nicht so
ganz klar. However.. das mit den Datumsfunktionen erklärt einiges.