Witam. Mam skrypt w JS, który oblicza mi ile czasu minęło od pewnego zdarzenia. Chciałbym napisać kolejny skrypt, który będzie dzielił mi ten wynik przej jakąś wartość i mnożył x 100. (tak aby uzyskać wartość procentową, ile procent minęło.
Oto pierwszy skrypt:
<html>
<head>
<script type="text/javascript">
/***********************************************
* Dynamic CountUp script- Š Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit <a href="http://www.dynamicdrive.com/" target="_blank">http://www.dynamicdrive.com/</a> for this script and 100s more.
***********************************************/
function dcountup(startingdate, baseunit){
this
.currentTime
=new Date() this
.startingdate
=new Date(startingdate
) this.timesup=false
this.baseunit=baseunit
this.start()
}
dcountup.prototype.oncountup=function(){} //default action for "oncountup"
dcountup.prototype.start=function(){
var thisobj=this
this.currentTime.setSeconds(this.currentTime.getSeconds()+1)
var timediff=(this.currentTime-this.startingdate)/1000 //difference btw target date and current date, in seconds
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"
}
var result={days: dayfield, hours:hourfield, minutes:minutefield, seconds:secondfield}
this.oncountup(result)
setTimeout(function(){thisobj.start()}, 1000) //update results every second
}
</script>
</head>
<body>
<div id="countdowncontainer"></div>
<script type="text/javascript">
var futuredate=new cdtime("countdowncontainer", "10 8, 2011 10:00:00")
futuredate.displaycountdown("days", formatresults)
var currentyear
=new Date().getFullYear
() //dynamically get this Christmas' year value. If Christmas already passed, then year=current year+1
var thischristmasyear
=(new Date().getMonth
()>=11
&& new Date().getDate()>25
)? currentyear
+1
: currentyear
var christmas=new cdtime("countdowncontainer2", "December 25, "+thischristmasyear+" 0:0:00")
christmas.displaycountdown("days", formatresults2)
</script>
<div id="cpcontainer"> </div>
<script type="text/javascript">
//SYNTAX: myvariable=new dcountup(past_date_and_time_string, "baseunit")
var princewedding=new dcountup("March 4, 2010 21:54:00", "days")
princewedding.oncountup=function(result){
//result is an object containing the current count up date/time, updated every second
//Available properties: result["days"], result["hours"], result["minutes"], and result["seconds"]
var mycountainer=document.getElementById("cpcontainer")
mycountainer.innerHTML="<p style=\"font-size: 15px; font-family: tahoma; color: #000000;\">Pozostalo:<br />"+result['days']+"dni " +result['hours']+"godzin "+result['minutes']+" minut "+result['seconds']+" sekund:)"
}
</script>
Prawdopodobnie kod zawiera śmieci, był skopiowany ze stron ze skryptami, ale ważne że działa, że wynik jest ustalany dynamicznie. Skrypt powoduje zwrócenie wyniku w postaci:
"Pozostalo:
182dni 10godzin 8 minut 40 sekund:)" i zmienia się co sekundę.
Chcę wstawić kolejny skrypt aby wynik z dni, (w tym wypadku 182), został podzielony przez jakąś wartość, a wiec aby skrypt powodował tak skutek:
"Pozostało:
X procent"
Mógłby ktos mi pomóc? Jestem newbie w tym temacie.