URL: https://www.overclockers.at/coding-stuff/countdown_170422/page_1 - zur Vollversion wechseln!
Hi Leute
folgendes würde ich benötigen:
Einen Echtzeit-Countdown der sich wiederholt => Er soll jede Woche bis Sonntag 11 Uhr runterzählen (Tage, Stunden, Minuten), wenn er diesen Zeitpunkt erreicht hat 4 Stunden eine Message anzeigen (anstatt des Countdowns) und dann wieder bis zum nächsten Sonntag 11 Uhr runterzählen
Ich hab mich jetzt schon nach ein paar Scripts umgesehen, aber keines hat mir zugesagt. Die Meisten Countdowns zählen nur bis zu einem gewissen Zeitpunkt runter und bleiben dann stehen (und ich habe nicht die Coding-Skills um ihn um zu bauen )
Weiters wäre es interessant es so zu lösen, dass er nicht per default von gewissen Adblock Plug-Ins ausgeblendet wird => ich schätze ein Javascript wäre da sehr anfällig/gefährdet... sollte auch per php bzw. html-code realisierbar sein ? (nur dann ist es eben die Frage, ob dies in Echtzeit möglich ist)
Aktuelle Zeit vom Server auslesen lassen wäre halt auch ein Hit, falls der User eine falsche Zeit eingestellt hat...
tia
TOM
per javascript und php wirklich leicht realisierbar. über adblocker brauchst du dir da keine sorge machen, sonst wären 95% aller javascripthaltigen seiten reine werbeplattformen
das phpscript verwaltet per aufruf die aktuelle anzeige - gibt also je nach counterstatus entweder das javascript für den timer aus oder die message (können der einfachheithalber auch 2 unterschiedliche seiten sein). der timer javascript code zählt einfach die zeit runter, hat allerdings eine abfrage für ein timerende, die ein sitereload erzwingt (falls jemand den timer wirklich einmal abwarten sollte ).
die sache sollte sich mit 10 zeilen js und 20 zeilen php locker lösen lassen. wäre vl ein guter einstieg um deine codingskills zu verbessern
da gibts keine codingskills, demnach auch nix zum verbessern
wärst so lieb mat und tippst ma schnell was dafür :]
index.php
Code:<?php // MACROS define('DEBUG',true); define('DEBUG_TIME',mktime(21,59,55,10,22,2006)); define('MESSAGE_TIME_START_WDAY','sunday'); // english weekday define('MESSAGE_TIME_START_HOUR',23); // hour of day define('MESSAGE_TIME_PERIOD',4); // hours define('PAGE_TIMER','timer.html'); define('PAGE_MESSAGE','message.html'); // IMPLEMENTATION // // => Set timezone (PHP4) // ..not implemented yet! // => Set timezone (PHP5) if (function_exists('date_default_timezone_set')) date_default_timezone_set('Europe/Vienna'); // *) Calculate timestamps $nCurTime = DEBUG ? DEBUG_TIME : time(); $aCurTime = getdate($nCurTime); $nStartTime = strtotime('+1 '.MESSAGE_TIME_START_WDAY) + MESSAGE_TIME_START_HOUR * 3600; $aStartTime = getdate($nStartTime); if ($nStartTime - $nCurTime > 7*24*3600-MESSAGE_TIME_PERIOD*3600) { $nStartTime = mktime(MESSAGE_TIME_START_HOUR,0,0,$aCurTime['mon'],$aCurTime['mday'],$aCurTime['year']); if ($aCurTime['wday'] > $aStartTime['wday']) // => quick fix for overlapping time in period 1 $nStartTime -= 86400; if ($nCurTime > $nStartTime + MESSAGE_TIME_PERIOD * 3600) // => quick fix for overlapping time in period 2 $nStartTime = strtotime('+1 '.MESSAGE_TIME_START_WDAY) + MESSAGE_TIME_START_HOUR * 3600; } $aStartTime = getdate($nStartTime); // *) Message fork $bShowTimer = $nCurTime < $nStartTime; // *) Show output page $szPage = $bShowTimer ? PAGE_TIMER : PAGE_MESSAGE; $szContent = file_get_contents($szPage); if ($szContent === false) die("Error: Could not load output page [$szPage]"); // -) Set no-cache headers header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // date in the past // -) Replace current timebase if ($bShowTimer) { // -) Find current timebase $nDiffTime = $nStartTime - $nCurTime; $nDays = (int) ($nDiffTime / 86400); $nDiffTime -= $nDays * 86400; $nHours = (int) ($nDiffTime / 3600); $nDiffTime -= $nHours * 3600; $nMins = (int) ($nDiffTime / 60); $nDiffTime -= $nMins * 60; $nSecs = $nDiffTime; $szContent = str_replace(array('[DAYS]','[HOURS]','[MINS]','[SECS]'),array($nDays,$nHours,$nMins,$nSecs),$szContent); } echo $szContent; ?>
Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Timer</title> </head> <script type="text/javascript"> <!-- var nTimerID = 0; var nDays = [DAYS], nHours = [HOURS], nMins = [MINS], nSecs = [SECS]; function updateHTML() { var oTimerDays = document.getElementById('idTimerDays'), oTimerHMS = document.getElementById('idTimerHMS'); if (!oTimerDays || !oTimerHMS) { alert('Error: Timer object(s) not found!'); return false; } oTimerDays.innerHTML = nDays; oTimerHMS.innerHTML = nHours + ':' + nMins + ':' + nSecs; return true; } function updateTimer() { // *) Update timer variables if (--nSecs == -1) { if (--nMins == -1) { nMins = 59; if (--nHours == -1) { if (--nDays == -1) { // => reload timer page.. countdown finished window.location.reload(); return; } nHours = 23; } } nSecs = 59; } // *) Update html nodes if (!updateHTML()) return; // *) Invoke timer again nTimerID = setTimeout("updateTimer()",1000); } function initTimer() { if (!updateHTML()) return false; nTimerID = setTimeout("updateTimer()",1000); return true; } //--> </script> <body onload="initTimer()"> <h3>Timer</h3> <span id="idTimerDays"></span> Tage <span id="idTimerHMS"></span> </body> </html>
Code: PHP<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>Timer</title> </head> <body> <h3>Message</h3> </body> </html>
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025