Seite 1 von 2
Countdown als BBcode einfügen...
Verfasst: 29.07.2011 13:31
von Flosine
Hallo da draußen...
ich hoffe das gehört hier hin... habe lange gesucht um einen Countdown für phpbb3 zu finden... aber ich wollte auch keinen Mod sondern einfach eine Funktion über den BBcode...
Habe dann folgendes Gefunden:
BBCode Benutzung:
Code: Alles auswählen
[countdown_1]{NUMBER1}.{TEXT1} {NUMBER2} {NUMBER3}:{NUMBER4}:{NUMBER5}[/countdown_1]
Html Ersetzung:
Code: Alles auswählen
<script>
function toSt(n)
{
s=''
if(n<10) s+='0'
return s+n.toString();
}
var eventdate = new Date("{TEXT1} {NUMBER1}, {NUMBER2} {NUMBER3}:{NUMBER4}:{NUMBER5} UTC+2");
d=new Date();
count=Math.floor((eventdate.getTime()-d.getTime())/1000);
secs_count = toSt(count%60);
count=Math.floor(count/60);
mins_count = toSt(count%60);
count=Math.floor(count/60);
hours_count = toSt(count%24);
count=Math.floor(count/24);
days_count = count;
document.write(days_count);
document.write(' Tage und ');
document.write(hours_count);
document.write(':');
document.write(mins_count);
document.write(':');
document.write(secs_count);
document.write(' Stunden');
</script>
Problem daran ist nur das der Code keine Schleife durchläuft, sprich die Werte aktualsieren sich nicht von alleine sondern eben nur durch aktualiseren des Browsers. Habe nun gedacht man könnte das mit einer While Schleife ändern. In dem man sagt: While "Aktuelle Zeit" ist kleiner als "Eventzeit" durchlaufe die Schleife.
Aber ich weiß ehrlich gesagt nicht wirklich an welcher Stelle ich das alles im Script unterbringen soll...
Könnte mir vlt. jemand helfen bzw. mir dieses in den Script einbauen. Habe von einer PHP Programmierung nicht soviel Ahnung.
Vielen Dank vorab.
Gruß
Florian
Re: Countdown als BBcode einfügen...
Verfasst: 30.07.2011 19:50
von BNa
Das Script ist etwas out of date.
Generiere ein neues, was wirklich funktioniert hier
http://www.ricocheting.com/code/javascr ... down-timer
und bastel Dir daraus einen neuen BBCode.
Re: Countdown als BBcode einfügen...
Verfasst: 30.07.2011 19:58
von BNa
zB
BBCode
Code: Alles auswählen
[countdown_1]{NUMBER1}x{NUMBER2}x{NUMBER3}[/countdown_1]
Benutzung
Html Ersetzung
Code: Alles auswählen
<script type="text/javascript">
//######################################################################################
// Author: ricocheting.com
// Version: v2.0
// Date: 2011-03-31
// Description: displays the amount of time until the "dateFuture" entered below.
// NOTE: the hour is in 24 hour format. 0=12am, 15=3pm etc
// format: dateFuture1 = new Date(year,month,day,hour,min,sec)
// example: dateFuture1 = new Date(2003,03,26,14,15,00) = April 26, 2003 - 2:15:00 pm
dateFuture1 = new Date({NUMBER1},({NUMBER2} - 1),{NUMBER3},00,00,00);
// TESTING: comment out the line below to print out the "dateFuture" for testing purposes
//document.write(dateFuture +"<br />");
//###################################
//nothing beyond this point
function GetCount(ddate,iid){
dateNow = new Date(); //grab current date
amount = ddate.getTime() - dateNow.getTime(); //calc milliseconds between dates
delete dateNow;
// if time is already past
if(amount < 0){
document.getElementById(iid).innerHTML="Now!";
}
// else date is still good
else{
days=0;hours=0;mins=0;secs=0;out="";
amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs
days=Math.floor(amount/86400);//days
amount=amount%86400;
hours=Math.floor(amount/3600);//hours
amount=amount%3600;
mins=Math.floor(amount/60);//minutes
amount=amount%60;
secs=Math.floor(amount);//seconds
if(days != 0){out += days +" "+((days==1)?"day":"days")+", ";}
if(hours != 0){out += hours +" "+((hours==1)?"hour":"hours")+", ";}
out += mins +" "+((mins==1)?"min":"mins")+", ";
out += secs +" "+((secs==1)?"sec":"secs")+", ";
out = out.substr(0,out.length-2);
document.getElementById(iid).innerHTML=out;
setTimeout(function(){GetCount(ddate,iid)}, 1000);
}
}
window.onload=function(){
GetCount(dateFuture1, 'countbox1');
//you can add additional countdowns here (just make sure you create dateFuture2 and countbox2 etc for each)
};
</script>
<div id="countbox1"></div>
Re: Countdown als BBcode einfügen...
Verfasst: 01.08.2011 06:42
von Flosine
Hallo Danke...
werde es damit mal probieren... ich hoffe ich komme damit klar...
Re: Countdown als BBcode einfügen...
Verfasst: 01.08.2011 10:04
von Flosine
So prima, hat alles geklappt... jetzt habe ich aber noch ein ganz anderes Problem....
Ich kann leider den code immer nur einmal verwenden/ Pro Thread bzw. Seite...
Habe es auch schon probiert in dem ich unterschiedliche BBCodes Bezeichnungen genommen habe und auch den Code (wie im Code) beschrieben geändert, und trotzdem nimmt der Code falsche werte bzw. die Werte aus dem Letzten BBCode an:
z.B.
für Weihnachten
Gebe ich weiter unten oder in einem neuen Beitrag wieder einen solchen an z.B.
für Ostern so bezieht sich die Codeausgabe auf den letzten BBcode für Ostern und der erste wird garnicht gezeigt...
Woran kann das liegen und wie kann ich das ändern bzw. verhindern?!
Danke
Re: Countdown als BBcode einfügen...
Verfasst: 01.08.2011 13:29
von BNa
Das ist einfach. Die Lösung folgt später..
Der Code hat ferner nur drei Komponenten
Re: Countdown als BBcode einfügen...
Verfasst: 01.08.2011 13:50
von Flosine
Naja bezogen auf die oberen beiträge gebe ich dir recht, das nur jahr, monat, tag da sind, ich habe den script bei mir geändert und auch die anderen Zeiten wie Stunden, Minuten, Sekunden mit einbezogen.
Über eine Lösung wäre ich froh... vielen Dank....
Re: Countdown als BBcode einfügen...
Verfasst: 02.08.2011 15:41
von Flosine
Hallo nochmal...
kann mir jemand weiter helfen mit meinem obigen Problem:
Der Script sieht derzeit so aus... und funktioniert wunderbar... nur halt das ich ihn pro Seite nur 1x einsetzen kann:
Code: Alles auswählen
[cd]{NUMBER1}x{NUMBER2}x{NUMBER3}x{NUMBER4}x{NUMBER5}x{NUMBER6}x{SIMPLETEXT7}[/cd]
Code: Alles auswählen
<script type="text/javascript">
//######################################################################################
// Author: ricocheting.com
// Version: v2.0
// Date: 2011-03-31
// Description: displays the amount of time until the "dateFuture" entered below.
// NOTE: the month entered must be one less than current month. ie; 0=January, 11=December
// NOTE: the hour is in 24 hour format. 0=12am, 15=3pm etc
// format: dateFuture1 = new Date(year,month-1,day,hour,min,sec)
// example: dateFuture1 = new Date(2003,03,26,14,15,00) = April 26, 2003 - 2:15:00 pm
dateFuture1 = new Date({NUMBER1},({NUMBER2}-1),{NUMBER3},{NUMBER4},{NUMBER5},{NUMBER6});
// TESTING: comment out the line below to print out the "dateFuture" for testing purposes
//document.write(dateFuture1 +"test");
//###################################
//nothing beyond this point
function GetCount(ddate,iid){
dateNow = new Date(); //grab current date
amount = ddate.getTime() - dateNow.getTime(); //calc milliseconds between dates
delete dateNow;
// if time is already past
if(amount < 0){
document.getElementById(iid).innerHTML="Now!";
}
// else date is still good
else{
years=0;weeks=0;days=0;hours=0;mins=0;secs=0;out="";
ms = (""+((amount%1000)+1000)).substr(1,3); amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs
years=Math.floor(amount/31536000);//years (no leapyear support)
amount=amount%31536000;
weeks=Math.floor(amount/604800);//weeks
amount=amount%604800;
days=Math.floor(amount/86400);//days
amount=amount%86400;
hours=Math.floor(amount/3600);//hours
amount=amount%3600;
mins=Math.floor(amount/60);//minutes
amount=amount%60;
secs=Math.floor(amount);//seconds
if(years != 0){out += years +" "+((years==1)?"Jahr":"Jahre")+", ";}
if(weeks != 0){out += weeks +" "+((weeks==1)?"Woche":"Wochen")+", ";}
if(days != 0){out += days +" "+((days==1)?"Tag":"Tage")+", ";}
if(hours != 0){out += hours +" "+((hours==1)?"Stunde":"Stunden")+", ";}
out += mins +" "+((mins==1)?"Minute":"Minuten")+", ";
out += secs +("."+ms)+" "+((secs==1)?"Sekunde":"Sekunden")+", ";
out = out.substr(0,out.length-2);
document.getElementById(iid).innerHTML=out;
setTimeout(function(){GetCount(ddate,iid)}, 25);
}
}
window.onload=function(){
GetCount(dateFuture1, 'countbox1');
//you can add additional countdowns here (just make sure you create dateFuture2 and countbox2 etc for each)
};
</script>
<table width="500px" border="1" bordercolor="#000000" bgcolor="#00AFFF" cellpadding="0" cellspacing="2" >
<tr>
<th id="countbox1" align="center" style="color:#FFDF00; font-family:arial" ></th>
</tr>
<tr>
<th align="center" style="color:#DFDFDF; font-family:arial" >{SIMPLETEXT7}</th>
</tr>
</table>
Würde ihn aber gern mehrfach auf einer Seite/ einem Beitrag nutzen können... wie muss der Script geändert werden, damit mehrer davon sich nicht in die Quere kommen. Kann mir jemand helfen und das vlt. einprogrammieren?!
Vielen Dank vorab
Re: Countdown als BBcode einfügen...
Verfasst: 05.08.2011 07:06
von Flosine
Kann mir denn niemand hier helfen... würde es gern vollständig im Forum integrieren, bin aber leider keiner der so gut mit PHP kann... nach Vorlage einprogrammieren bekomme ich ja problem hin... ein wenig was selber geht auch noch aber... so (für mich zu mindest) kompliziertere Dinge...

Re: Countdown als BBcode einfügen...
Verfasst: 09.08.2011 09:46
von Flosine
Wollte den Thread nochmal nach vorne holen... habe leider noch immer keine Antwort...
Ist es wirklich schwer so etwas zu erstellen... habe keine Ahnung aber vlt. kann mir jemand helfen..