반응형

이미지 파일


<<nowTIme.json>>


info({

    "year"    :  "2013",

    "month"   :  "06",

    "day"     :  "20",

    "hours"   :  "12",

    "min"     :  "00",

    "second"  :  "00"

})






<<Html>>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

 

 

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 

<title>Countdown</title>

 

<!-- css  -->

<link rel="stylesheet" type="text/css" href="timer.css" />

 

<!-- js  -->

<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.min.js'></script>

<script type='text/javascript' src='jquery.timers.js'></script>

<script type='text/javascript' src='timer.js'></script>

 

 

</head>

 

<body>

 

    <div><span id="countDown"></span></div>

    

    <div id="timeBox">

        <em class="num_0" id="TimeThp_1"><span></span></em>

        <em class="num_0" id="TimeThp_2"><span></span></em>

        <em class="colon"></em>

        <em class="num_0" id="TimeThp_3"><span></span></em>

        <em class="num_0" id="TimeThp_4"><span></span></em>

        <em class="colon"></em>

        <em class="num_0" id="TimeThp_5"><span></span></em>

        <em class="num_0" id="TimeThp_6"><span></span></em>

    </div>

    

    

    <div><span id="nowTime"></span></div>

    <div><span id="limitTime"></span></div>

</body>

 

</html>






<<Css>>


*{padding: 0; margin: 0; line-height: none; border: 0;}

#timeBox{height:121px;overflow:hidden;position:absolute;left:144px;top:150px}

#timeBox em,#em_tyche div.tyche_header div.timeBox span{float:left;position:relative;width:104px;height:104px;margin-right:2px;background-image:url(http://img.emart.co.kr/front_2013/tyche/today_time.png);background-repeat:no-repeat}

#timeBox span{float:none;position:absolute;top:0;left:0}

#timeBox em.colon{width:12px;margin:0 5px;background-position:-360px -104px}

#timeBox em.num_0{background-position:-208px -104px}

#timeBox em.num_0 span{background-position:-208px -104px}

#timeBox em.num_1{background-position:0 0}

#timeBox em.num_1 span{background-position:0 0}

#timeBox em.num_2{background-position:-104px 0}

#timeBox em.num_2 span{background-position:-104px 0}

#timeBox em.num_3{background-position:-208px 0}

#timeBox em.num_3 span{background-position:-208px 0}

#timeBox em.num_4{background-position:-312px 0}

#timeBox em.num_4 span{background-position:-312px 0}

#timeBox em.num_5{background-position:-416px 0}

#timeBox em.num_5 span{background-position:-416px 0}

#timeBox em.num_6{background-position:-520px 0}

#timeBox em.num_6 span{background-position:-520px 0}

#timeBox em.num_7{background-position:-624px 0}

#timeBox em.num_7 span{background-position:-624px 0}

#timeBox em.num_8{background-position:0 -104px}

#timeBox em.num_8 span{background-position:0 -104px}

#timeBox em.num_9{background-position:-104px -104px}

#timeBox em.num_9 span{background-position:-104px -104px}



<<JavaScript>>


// JavaScript Code

var isFirst = true;

var nowTime; // 현재시간설정

var endTime = new Date(2013, 06-1, 21, 18, 00, 00); //목표시간설정

var timeLeft;

var timeSinceLast = 0;

var whatYoil = new Array("일요일","월요일","화요일","수요일","목요일","금요일","토요일")

//var whatYoil = new Array("Sunday","Monday","Tuseday","Wednesday","Thursday","Friday","Saturday")

 

 

window.onload = function(){

    

    $.ajax({

        //contentType을 지정해줘야 합니다.

        url: "nowTime.json",

        crossDomain: true,

        dataType: "jsonp",

        jsonpCallback: "info",

        success: function(xml) {

               //console.debug(xml.year)   

               //console.debug(xml.month)    

            

            nowTime = new Date(xml.year, xml.month-1, xml.day, xml.hours, xml.min, xml.second) //서버 현제시간으로 셋팅

            timeLeft = (endTime - nowTime) / 1000; // 목표시간 - 서버현제시간

            

            $('#nowTime').text("현재시간설정  :  " + xml.year+":"+xml.month+":"+xml.day+":"+xml.hours+":"+xml.min+":"+xml.second);

            $('#limitTime').text("목표시간설정  :  2013:06:21:18:00:00");

            timeInit()   

        },

        error: function() {

            alert("현재시간을 서버에서 불러오지 못했습니다.");

        }

    });

    

};

 

function timeInit(){

 

    var timeArr = new Array(6);

    timeArr[0] = "TimeThp_1";

    timeArr[1] = "TimeThp_2";

    timeArr[2] = "TimeThp_3";

    timeArr[3] = "TimeThp_4";

    timeArr[4] = "TimeThp_5";

    timeArr[5] = "TimeThp_6";

    

    timeobj = new Array();

    

    for(var i=0; i<timeArr.length; i++) {

        timeobj.push( document.getElementById(timeArr[i]) );

    }

    

    

    $(this).everyTime(1000, "countTimer", function(){

     

        if (isFirst === true || timeLeft == -1 || (timeLeft < 300 && timeSinceLast >= 60)) {

            var nt = new Date().getTime();

            /*

            $.get("timesync.php?nowtime=" + nt, function(data) {

            nowTime = eval('new Date(' + data + ')');

            timeLeft = (endTime - nowTime) / 1000;

            });

            */

            isFirst = false;

            timeSinceLast = 0;

        }

 

        var outputString = '';

     

        if (timeLeft <= 0) {

         

            outputString = '종료';

            hourCount = "00"

            minCount = "00"

            secCount = "00"

            

         

        } else {

         

            var dayCount = Math.floor(timeLeft / 86400);

            var hourCount = Math.floor((timeLeft - dayCount * 86400) / 3600);

            var minCount = Math.floor((timeLeft - (dayCount * 86400) - (hourCount * 3600)) / 60);

            var secCount = timeLeft - (dayCount * 86400) - (hourCount * 3600) - (minCount * 60);

            

            if (dayCount > 0) {

                outputString = dayCount + '일' + " " + whatYoil[nowTime.getDay()];

             

            }

         

            outputString += digit(hourCount) + ':' +  digit(minCount) + ':' + digit(secCount);

            timeLeft -= 1;

            timeSinceLast += 1;

            

        }

        

                

        /////// display

        $('#countDown').text(outputString);

                

        timeobj[0].className = 'num_'+String(digit(hourCount)).substr(0, 1)

        timeobj[1].className = 'num_'+String(digit(hourCount)).substr(1, 1)

        timeobj[2].className = 'num_'+String(digit(minCount)).substr(0, 1)

        timeobj[3].className = 'num_'+String(digit(minCount)).substr(1, 1)

        timeobj[4].className = 'num_'+String(digit(secCount)).substr(0, 1)

        timeobj[5].className = 'num_'+String(digit(secCount)).substr(1, 1)

        

    });

    

}

 

function digit(c){

    if(c < 10){

        return "0"+c

    }else{

        return c

    }

}



728x90
반응형

+ Recent posts