Hallo,
ich hab ein riesen Problem, ich wollte nämlich ein grafischen Countdownzähler erstellen, allerdings müsste ich nun, wenn das Countdownende bspw. in 235 Tagen zu ende geht, 235 Grafiken erstellen (1,2,3... 232,233,234...) damit es keine Kreuzbilder gibt...
Ist es evtl. möglich z.b. beim Countdownstand von
21"3" Tagen - 1"7" Minuten...
die Minutenausgabe getrennt ausgeben zu lassen? Damit ich nur die 9 Grafiken erstellen muss, also die von 01, 02 etc.
Mit dem nachfolgenden Code wird leider die Minuten, Sekunden und Tagesausgabe zusammen ausgegeben z.B. "46" Minuten was aber lieber einzeln ausgegeben werden soll "4""6"
PHP-Code:
function cdtime(container, targetdate){
if (!document.getElementById || !document.getElementById(container)) return
this.container=document.getElementById(container)
this.currentTime=new Date()
this.targetdate=new Date(targetdate)
this.timesup=false
this.updateTime()
}
cdtime.prototype.updateTime=function(){
var thisobj=this
this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
}
cdtime.prototype.displaycountdown=function(baseunit, functionref){
this.baseunit=baseunit
this.formatresults=functionref
this.showresults()
}
cdtime.prototype.showresults=function(){
var thisobj=this
var timediff=(this.targetdate-this.currentTime)/1000 //difference btw target date and current date, in seconds
if (timediff<0){ //if time is up
this.timesup=true
this.container.innerHTML=this.formatresults()
return
}
var oneMinute=60 //minute unit in seconds
var oneHour=60*60 //hour unit in seconds
var oneDay=60*60*24 //day unit in seconds
var dayfield=Math.floor(timediff/oneDay)
var hourfield=Math.floor((timediff-dayfield*oneDay)/oneHour)
var minutefield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour)/oneMinute)
var secondfield=Math.floor((timediff-dayfield*oneDay-hourfield*oneHour-minutefield*oneMinute))
if (this.baseunit=="hours"){ //if base unit is hours, set "hourfield" to be topmost level
hourfield=dayfield*24+hourfield
dayfield="n/a"
}
else if (this.baseunit=="minutes"){ //if base unit is minutes, set "minutefield" to be topmost level
minutefield=dayfield*24*60+hourfield*60+minutefield
dayfield=hourfield="n/a"
}
else if (this.baseunit=="seconds"){ //if base unit is seconds, set "secondfield" to be topmost level
var secondfield=timediff
dayfield=hourfield=minutefield="n/a"
}
this.container.innerHTML=this.formatresults(dayfield, hourfield, minutefield, secondfield)
setTimeout(function(){thisobj.showresults()}, 1000) //update results every second
}
/////CUSTOM FORMAT OUTPUT FUNCTIONS BELOW//////////////////////////////
//Create your own custom format function to pass into cdtime.displaycountdown()
//Use arguments[0] to access "Tage" left
//Use arguments[1] to access "Std." left
//Use arguments[2] to access "Min." left
//Use arguments[3] to access "Sek." left
//The values of these arguments may change depending on the "baseunit" parameter of cdtime.displaycountdown()
//For example, if "baseunit" is set to "hours", arguments[0] becomes meaningless and contains "n/a"
//For example, if "baseunit" is set to "minutes", arguments[0] and arguments[1] become meaningless etc
function formatresults(){
if (this.timesup==false){//if target date/time not yet met
var displaystring="<img src=\"../images/counter/"+arguments[0]+".png\"> T "+arguments[1]+" Std. <img src=\"../images/counter/"+arguments[2]+".png\"> Min. "+arguments[3]+" Sek."
}