我想获得倒计时5小时的效果,现在只是指定了一个时间,求各位大神帮帮忙,是真的没有C币了

function countTime(){
var date = new Date();//获取当前时间
var now = date.getTime();
var endDate = new Date("2019-01-17 15:00:00");//结束时间
var end = endDate.getTime();
var leftTime = end - now;
var d, h, m, s, ms;
if(leftTime >= 0) {
h = Math.floor(leftTime / 1000 / 60 / 60);
m = Math.floor(leftTime / 1000 / 60 % 60);
s = Math.floor(leftTime / 1000 % 60);
ms = Math.floor(leftTime % 1000);
if(ms < 100) {
ms = "0" + ms;
}
if(s < 10) {
s = "0" + s;
}
if(m < 10) {
m = "0" + m;
}
if(h < 10) {
h = "0" + h;
}
} else {
$(".pearl2").removeClass("pearl2").addClass("pearl");
$(".light").show();
$(".time").text("");
}
$(".time").text(h + "时"+m + "分"+s + "秒")
setTimeout(countTime, 50);
}

4个回答

    //  var date = new Date();//获取当前时间

// var now = date.getTime();
// var endDate = new Date("2019-01-22 15:00:00");//结束时间
// var end = endDate.getTime();
// var leftTime = end - now;

var leftTime=5*60*60*1000;
function countTime(leftTime){
var d, h, m, s, ms;
if(leftTime >= 0) {
h = Math.floor(leftTime / 1000 / 60 / 60);
m = Math.floor(leftTime / 1000 / 60 % 60);
s = Math.floor(leftTime / 1000 % 60);
ms = Math.floor(leftTime % 1000);
if(ms < 100) {
ms = "0" + ms;
}
if(s < 10) {
s = "0" + s;
}
if(m < 10) {
m = "0" + m;
}
if(h < 10) {
h = "0" + h;
}
$(".time").text(h + "时"+m + "分"+s + "秒")
setTimeout(function(){
leftTime=leftTime-1000;
sessionStorage.setItem('time',leftTime);
countTime(parseInt(sessionStorage.getItem('time')));
//countTime(leftTime);
}, 500);
} else {
$(".time").text("倒计时结束");
}
}
sessionStorage.getItem('time')?countTime(parseInt(sessionStorage.getItem('time'))):countTime(leftTime);

//countTime(leftTime);

weixin_44520574
`奋力前行 回复圈子不同别硬容@!: 代码改了下,注释的是到具体时间的倒计时
大约一年之前 回复
weixin_44520574
`奋力前行 回复圈子不同别硬容@!: 你是想要离某个结束时间倒计时5小时的效果吗
大约一年之前 回复
weixin_42811890
圈子不同别硬容@! 这样写页面刷新时间就会重置了,有更好的方法吗
大约一年之前 回复

去百度搜索一下一个神奇的时间工具类calendar。你会发现你写的代码是渣

就是一个简单的5 * 3600 (s)进行一个每秒递减的操作啦

不知道你说的获得5小时的定时是用什么写的,或者用在什么地方,我目前以51单片机的为例。
/*-----------------------------------------------------------------------------------------------------------------------------
计时器中断服务函数
------------------------------------------------------------------------------------------------------------------------------*/
void Timer0() interrupt 1
{

static unsigned int i,tcnt;

TH0=(65535-1000)/256; //重新赋值 1ms
TL0=(65535-1000)%256;

Display(0,8);                               // 调用数码管扫描

 if(BeepFlag)         //启动喇叭标志

{
if(tcnt500&&tcnt<800) )
BEEP=!BEEP; //闪响
else
BEEP=0; //停止发声
}

i++;

if(i==2) //20ms更新一次
{
i=0;
UpdateTimeFlag=1; //更新时间志位置1
}

if(GOFLAG==1)
{
    tcnt++;
    if(tcnt==1000)  //检测当前数值显示了一小段时间后,需要显示的数值-1,实现数据显示的变化   //大致1s
    {
            tcnt=0;
            second++;
            LED=!LED;
            if(second==60)   
            {
                    second=0;
                    minute++;               
                    if(minute==60)
                    { 
                            minute=0;
                            hour++;                         
                            if(hour==24)
                            { 
                                    hour=0;
                            }
                    }
             }          
    }

}
else
TEMP_D();

}
void Init_Time0(void)
{
TMOD=0X01; //工作方式 1 , //使用模式1,16位定时器,
// TH0=(65535-2000)/256;
// TL0=(65535-2000)%256;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //启动计时

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问