如果我有以下代表时间的字符串:
var s = "22:01:15";
我希望将该时间与系统时钟一起增加,但添加到我现有的值。
无论实际的计算机时钟是多少,我如何继续使用它,就好像它是真正的时钟一样?
答案 0 :(得分:4)
只需花时间,将其解析为Date
实例,并确定它与系统日期之间的差异。然后应用该偏移量。
解析它:
var parts = str.split(":");
将其应用于日期
var dt = new Date();
dt.setHours(parseInt(parts[0], 10));
dt.setMinutes(parseInt(parts[1], 10));
dt.setSeconds(parseInt(parts[2], 10));
获得差异
var diff = new Date().getTime() - dt.getTime();
每当您要显示值
时都应用它var now = new Date(new Date().getTime() - diff);
使用now
实例显示
你一开始就做了一次步骤1 - 4;然后根据需要重复步骤5.
答案 1 :(得分:0)
您可以尝试使用类似countdown plugin的内容并进行计数。
$('#sinceCountdown').countdown({since: CUSTOMTIMEVAR,
format: 'HMS', description: 'Custom Time'});
答案 2 :(得分:0)
以下脚本将为您完成:
简而言之,它取了那段时间内的某个日期之间的差异,并将其与当前日期进行比较,然后在间隔上使用该差异来更新当前时间。
var t = $('#time').text().split(":");
var d = new Date(2011, 01, 01 , t[0], t[1], t[2],0);
var d1 = new Date();
var diff = d.getTime()-d1.getTime();
window.setInterval(function(){
d1 = new Date();
d1.setTime(d1.getTime()+diff);
$('#time').text(ze(d1.getHours())+":"+ze(d1.getMinutes())+":"+ze(d1.getSeconds()));
},1000);
function ze(num) {
if (num.toString().length<=1){
return "0"+num;
}else{
return num;
}
}