webdesign/JavaScript

카운트다운 - 스크립트

yunsoo.note 2009. 2. 8. 10:43


<head>
<script>
var futureyear=2009
var futuremonth=1
var futureday=27
var displaytype="showall"
var digitordate="isdate"
var aftercountdown="stopit"
var digitfrom=100
var digitto=0
var speed=1

var countdownid=new Array()
var futuredate
var nowdate
var resulthoursraw
var resulthours
var resultminutesraw
var resultminutes
var resultsecondsraw
var resultseconds

 

var p_seconds
var p_minutes
var p_hours
var p_days

var resultsecondsonly
var resultminutesonly
var resulthoursonly
var content

var i_countdown=-1
var countdownid

var step=1
speed*=1000

if (digitfrom>digitto) {step=-1}
if (digitfrom<digitto) {step=1}

var browserinfos=navigator.userAgent
var ns4=document.layers
var ie4=!document.getElementById&&document.all&&!browserinfos.match(/Opera/)
var ie5=document.getElementById&&document.all&&!browserinfos.match(/Opera/)
var ns6=document.getElementById&&!document.all&&!browserinfos.match(/Opera/)
var opera=browserinfos.match(/Opera/) 

 

function setfuturedate() {
    futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
    if (digitordate=="isdigit") {content=digitfrom-step    }
    docountdown()
}

function docountdown() {
    if (digitordate=="isdate") {
        calculateresults()
        formatresults()
        displayresults()
        setTimeout("docountdown()",speed)
    }
    else if (digitordate=="isdigit") {
        content+=step   
        displayresults()
        if (content==digitto) {
            setTimeout("happensafter()",speed)
        }
        else {
            setTimeout("docountdown()",speed)
        }
    }
}

function firstcountdown() {
    if (digitordate=="isdate") {
        futuredate=new Date(futureyear,futuremonth,futureday,0,0,0)
        calculateresults()
        formatresults()
    }
    else if (digitordate=="isdigit") {
        content=digitfrom
    }
}

function calculateresults() {
nowdate=new Date()
resultdaysraw=(Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24
if (displaytype!="showall") {
    resultsecondsonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000)
    resultminutesonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60)
    resulthoursonly=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60)
}
else {
    resultdays=Math.floor((Date.parse(futuredate)-Date.parse(nowdate))/1000/60/60/24)
    resulthoursraw=(resultdaysraw-resultdays)*24
    resulthours=Math.floor((resultdaysraw-resultdays)*24)
    resultminutesraw=(resulthoursraw-resulthours)*60
    resultminutes=Math.floor((resulthoursraw-resulthours)*60)
    resultsecondsraw=(resultminutesraw-resultminutes)*60
    resultseconds=Math.floor((resultminutesraw-resultminutes)*60)
    }
}

function formatresults() {
    if (displaytype=="showall") {
        if (resultdays>1) {p_days="일"}
        else {p_days="일"}
        if (resultminutes<10) {resultminutes="0"+resultminutes}
        if (resultseconds<10) {resultseconds="0"+resultseconds}
        content=resultdays+" "+p_days+" "+resulthours+"시 "+resultminutes+"분 "+resultseconds +"초"
    }
    else if (displaytype=="showdays") {
        if (resultdays>1) {p_days="days"}
        else {p_days="day"}
        content=resultdays+" "+p_days
    }
    else if (displaytype=="showhours") {
        content=resulthoursonly+" hrs"
    }
    else if (displaytype=="showminutes") {
        content=resultminutesonly+" min"
    }
    else if (displaytype=="showseconds") {
        content=resultsecondsonly+" sec"
    }
}

function happensafter() {
    if (aftercountdown=="repeatit") {
        if (digitordate=="isdigit") {content=digitfrom-step}
        docountdown()
    }
    if (aftercountdown!="stopit" && aftercountdown!="repeatit") {
        document.location.href=aftercountdown
    }
}

function displayresults() {
    if (ie4) {
        for (i=0;i<=countdownid.length-1;i++) {
            var thisclock=eval(countdownid[i])
            thisclock.innerHTML=content
        }
    }
    else {
        for (i=0;i<=countdownid.length-1;i++) {
            document.getElementById(countdownid[i]).innerHTML=content
        }
    }
}

function setcountdown() {
    if (ns4 || ie4 || ie5 || ns6 || opera) {
        firstcountdown()
        i_countdown++
        countdownid[i_countdown]="countdown"+i_countdown
        document.write("<span id='"+countdownid[i_countdown]+"' style='position:relative'>"+content+"</span>")
    }
}

if (ie4 || ie5 || ns6 || opera) {
    onload=setfuturedate
}
</script>

</head>
<body>

 

 

<script>setcountdown()</script>
남았습니다.
 
</body>
 
<!--
**주의 : 맨위 스크립트시작부분

var futureyear=2005
var futuremonth=11
var futureday=31
은 D데이 날짜를 지정하는 부분인데.. var futuremonth=11에서 11은 12월을 나타냅니다

즉, 0 ~ 11까지를 월단위로 작용해야합니다. (0은 1월)
-->