为了账号安全,请及时绑定邮箱和手机立即绑定

怎么实现从xx天xx时xx分xx秒开始倒计时

怎么实现从xx天xx时xx分xx秒开始倒计时?谢谢,最好附上源码

正在回答

1 回答

// JavaScript Document

//window.width =1024;

//window.height =768;

//窗口的处理更加的方便

/*

var WINDOW_WIDTH =1024;

var WINDOW_HEIGHT =768;

var RADIUS =8;

var MARGIN_LEFT =30;

var MARGIN_TOP =60;

const endTime =new Date("2016-07-26 18:20:30");

var curShowTimeSeconds =0;


window.onload = function(){

var canvas =document.getElementById("canvas");

var context =canvas.getContext("2d");

canvas.width =WINDOW_WIDTH;

canvas.height =WINDOW_HEIGHT;

curShowTimeSeconds =getCurrentShowTimeSeconds();

render( context );//绘制当前的canvas函数的画布

}

function getCurrentShowTimeSeconds(){

var curTime =new Date();

var ret =endTime.getTime()-curTime.getTime();

ret =Math.round(ret/1000);//换算成秒并且取整

return ret>0?ret :0;

}



function render( cxt ){

var hours =parseInt(curShowTimeSeconds/3600);

var minutes =parseInt((curShowTimeSeconds-hours*3600)/60);

var seconds =curShowTimeSeconds%60;

renderDigit(MARGIN_LEFT,MARGIN_TOP,parseInt(hours/10),cxt);

renderDigit(MARGIN_LEFT+15*(RADIUS+1),MARGIN_TOP,parseInt(hours%10),cxt);

renderDigit(MARGIN_LEFT+30*(RADIUS+1),MARGIN_TOP,10,cxt);

    renderDigit(MARGIN_LEFT+39*(RADIUS+1),MARGIN_TOP,parseInt(minutes/10),cxt);

renderDigit(MARGIN_LEFT+54*(RADIUS+1),MARGIN_TOP,parseInt(minutes%10),cxt);

renderDigit(MARGIN_LEFT+69*(RADIUS+1),MARGIN_TOP,10,cxt);

renderDigit(MARGIN_LEFT+78*(RADIUS+1),MARGIN_TOP,parseInt(seconds/10),cxt);

renderDigit(MARGIN_LEFT+93*(RADIUS+1),MARGIN_TOP,parseInt(seconds%10),cxt);

    

   

}



function renderDigit(x,y,num,cxt){

cxt.fillStyle ="rgb(0,102,153)";

for (var i =0;i<digit[num].length;i++)

for (var j=0;j<digit[num][i].length;j++)

if(digit[num][i][j]==1)

{

cxt.beginPath();

cxt.arc(x+j*2*(RADIUS+1)+(RADIUS+1),y+i*2*(RADIUS+1)+(RADIUS+1),RADIUS,0,2*Math.PI);

cxt.closePath();

cxt.fill();

}

}

*/

var WINDOW_WIDTH = 1024;

var WINDOW_HEIGHT = 768;

var RADIUS = 8;

var MARGIN_TOP = 60;

var MARGIN_LEFT = 30;


const endTime = new Date(2016,7,26,22,47,52);

var curShowTimeSeconds = 0


window.onload = function(){


    var canvas = document.getElementById('canvas');

    var context = canvas.getContext("2d");


    canvas.width = WINDOW_WIDTH;

    canvas.height = WINDOW_HEIGHT;


    curShowTimeSeconds = getCurrentShowTimeSeconds()

    render( context )

}


function getCurrentShowTimeSeconds() {

    var curTime = new Date();

    var ret = endTime.getTime() - curTime.getTime();

    ret = Math.round( ret/1000 )


    return ret >= 0 ? ret : 0;

}


function render( cxt ){


    var hours = parseInt( curShowTimeSeconds / 3600);

    var minutes = parseInt( (curShowTimeSeconds - hours * 3600)/60 )

    var seconds = curShowTimeSeconds % 60


    renderDigit( MARGIN_LEFT , MARGIN_TOP , parseInt(hours/10) , cxt )

    renderDigit( MARGIN_LEFT + 15*(RADIUS+1) , MARGIN_TOP , parseInt(hours%10) , cxt )

    renderDigit( MARGIN_LEFT + 30*(RADIUS + 1) , MARGIN_TOP , 10 , cxt )

    renderDigit( MARGIN_LEFT + 39*(RADIUS+1) , MARGIN_TOP , parseInt(minutes/10) , cxt);

    renderDigit( MARGIN_LEFT + 54*(RADIUS+1) , MARGIN_TOP , parseInt(minutes%10) , cxt);

    renderDigit( MARGIN_LEFT + 69*(RADIUS+1) , MARGIN_TOP , 10 , cxt);

    renderDigit( MARGIN_LEFT + 78*(RADIUS+1) , MARGIN_TOP , parseInt(seconds/10) , cxt);

    renderDigit( MARGIN_LEFT + 93*(RADIUS+1) , MARGIN_TOP , parseInt(seconds%10) , cxt);

}


function renderDigit( x , y , num , cxt ){


    cxt.fillStyle = "rgb(0,102,153)";


    for( var i = 0 ; i < digit[num].length ; i ++ )

        for(var j = 0 ; j < digit[num][i].length ; j ++ )

            if( digit[num][i][j] == 1 ){

                cxt.beginPath();

                cxt.arc( x+j*2*(RADIUS+1)+(RADIUS+1) , y+i*2*(RADIUS+1)+(RADIUS+1) , RADIUS , 0 , 2*Math.PI )

                cxt.closePath()


                cxt.fill()

            }

}



0 回复 有任何疑惑可以回复我~
#1

zero沐白

还是00:00:00。。。。。。。
2016-10-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

怎么实现从xx天xx时xx分xx秒开始倒计时

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号