一个视频定时播放页面,系统节目播放时间定在13:00-16:00期间进行,现需要一个动态显示当前进行了多长时间的功能。我实现方法如下:
var nowdate = new Date();
var hour = nowdate.getHours();
var munit = nowdate.getMinutes();
var stm = Request["starttime"]; //这个时间是排好的如:13:00-16:00
var timearr = new Array();
timearr = stm.split(':');
var shour = Number(hour)-Number(timearr[0]);
var smin=0; //当前已经进行了多少分钟多少秒(动态显示)
if(Number(munit)<Number(timearr[1])){
smin=Number(munit)-Number(timearr[1])+60;
shour=shour-1;
}else{
smin = Number(munit)-Number(timearr[1]);
}
var muni = Number(munit);
if(muni<10&&muni>=0){
nowdate = hour + ":" +"0"+ munit;
}else{
nowdate = hour + ":" + munit;
}
if(smin<10&&smin>=0){
smin = shour +":"+"0"+smin;
}else{
smin = shour +":"+ smin;
}
var s_time = document.getElementById('starttime'); //
var u_time = document.getElementById('usetime');
var div = document.createElement("span");
var div1 = document.createElement("span");
div.innerHTML = nowdate;
div1.innerHTML = smin;
s_time.appendChild(div);
u_time.appendChild(div1);
var init =0;
init = Request["bypass_init"];
if(init!=1){
OnLoad(uuid,urlname);
}
}
function TimerStart(func,delay)
{
var TimerID = window.setInterval(
function()
{
if(!func())
{
window.clearInterval(TimerID);
};
},
delay
);
}
现在遇到的问题是,以上代码必需需要刷新页面“当前已经进行多少分钟”这个时间才更新,我需要的是动态显示进行了多长时间。
var nowdate = new Date();
var hour = nowdate.getHours();
var munit = nowdate.getMinutes();
var stm = Request["starttime"]; //这个时间是排好的如:13:00-16:00
var timearr = new Array();
timearr = stm.split(':');
var shour = Number(hour)-Number(timearr[0]);
var smin=0; //当前已经进行了多少分钟多少秒(动态显示)
if(Number(munit)<Number(timearr[1])){
smin=Number(munit)-Number(timearr[1])+60;
shour=shour-1;
}else{
smin = Number(munit)-Number(timearr[1]);
}
var muni = Number(munit);
if(muni<10&&muni>=0){
nowdate = hour + ":" +"0"+ munit;
}else{
nowdate = hour + ":" + munit;
}
if(smin<10&&smin>=0){
smin = shour +":"+"0"+smin;
}else{
smin = shour +":"+ smin;
}
var s_time = document.getElementById('starttime'); //
var u_time = document.getElementById('usetime');
var div = document.createElement("span");
var div1 = document.createElement("span");
div.innerHTML = nowdate;
div1.innerHTML = smin;
s_time.appendChild(div);
u_time.appendChild(div1);
var init =0;
init = Request["bypass_init"];
if(init!=1){
OnLoad(uuid,urlname);
}
}
function TimerStart(func,delay)
{
var TimerID = window.setInterval(
function()
{
if(!func())
{
window.clearInterval(TimerID);
};
},
delay
);
}
现在遇到的问题是,以上代码必需需要刷新页面“当前已经进行多少分钟”这个时间才更新,我需要的是动态显示进行了多长时间。
解决方案 »
- JavaScript面向对象里面的类应该如何写?谁帮我看下这段程序为什么跑不起来
- 利用MVC传回JSON传回的时间格式化
- 求教如下要求的jquery选择器怎么写
- VML中的这句话怎么解释?
- js 校验
- createDocumentFragment方法效率问题,IE8反其道行之?
- 表格的最后一列是个复选框,当选中该复选框的时候让这行颜色改变,不选的时候恢复原来的颜色
- 100分求助把这个java文件改为js在线等,马上结账
- hta对服务器端有要求么?能不能结合jsp使用啊
- 强烈呼吁CSDN改善速度,收费也可以!每月30 RMB还是可以接受地!
- 关于javascript的select下拉标签与struts2传参的问题
- 用javascript如何获取一个多变地形的节点,并改变其位置。
{
var TimerID = window.setInterval(
function()
{
if(!func())
{
window.clearInterval(TimerID);
};
},
delay
);
}你的这个方法调用的 func() 方法没有返回值吧?(没有返回值就是undefined --!undefined就是true,所以执行一次就没有了...)
照着大概的意思自己写了一段,希望能有帮助<script language="JavaScript">
var NowTime = new Date();//取
var startTime = new Date(NowTime.getYear(),NowTime.getMonth(),NowTime.getDate(),13,00,00);
//alert(startTime);
var nMS = NowTime.getTime() - startTime.getTime();
function GetRTime(){
var nH=Math.floor(nMS/(1000*60*60)) % 24;
var nM=Math.floor(nMS/(1000*60)) % 60;
var nS=Math.floor(nMS/1000) % 60;
document.getElementById("RemainH").innerHTML = nH<10 ? "0"+nH : nH;
document.getElementById("RemainM").innerHTML = nM<10 ? "0"+nM : nM;
document.getElementById("RemainS").innerHTML = nS<10 ? "0"+nS : nS;
setTimeout("GetRTime()",1000);
nMS += 1000;
}
window.onload=GetRTime;
</script> <div id="CountMsg">已进行了<strong id="RemainH">XX</strong>时<strong id="RemainM">XX</strong>分<strong id="RemainS">XX</strong>秒</div>