js 时间 根据获取的时间,控制页面上的时间每秒更新 ps:JS大牛些,在线跪求
在后台获取了一个时间,如2015-05-2210:23:54,然后在页面上显示获取的时间,在该时间的基础上按秒增加时间,跟系统时间每秒更新差不多,但是这个不是获取系统时间...
在后台获取了一个时间,如2015-05-22 10:23:54,然后在页面上显示获取的时间,在该时间的基础上按秒增加时间,跟系统时间每秒更新差不多,但是这个不是获取系统时间,而是根据自己提供的时间来实现时间效果
展开
展开全部
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<div style="margin: auto; width: 500px; height: 100px; text-align: center;">
还有<span id="d"></span>天
<span id="h"></span>小时
<span id="m"></span>分
<span id="s"></span>秒
</div>
</body>
<script>
var d = _$('d'),
h = _$('h'),
m = _$('m'),
s = _$('s'),
sto = null;
var start = '2014-12-1 12:00:10',
now = '2014-12-1 12:00:00';
function _$(id) {
return document.getElementById(id);
}
//start eg: 2014-12-1 12:00:00
function getSecondsByStartAndEnd(start, now) {
var d = (new Date(start)).getTime() - (new Date(now)).getTime();
return d > 0 ? d : 0;
}
function run(start , now) {
var sec = getSecondsByStartAndEnd(start, now)/1000,
d = parseInt(sec/(60*60*24), 10),
h = parseInt((sec/(60*60) - d*24), 10),
m = parseInt(sec/60 - d*24*60 - h*60),
s = parseInt(sec - d*24*60*60 - h*60*60 - m*60),
timer = {
d: d,
h: h,
m: m,
s: s
};
toHTML(timer);
sto = setInterval(function() {
timer = mulit(timer);
if(timer.d === -1) {
alert('time over!');
clearInterval(sto);
} else {
toHTML(timer);
}
},1000);
}
function mulit(timer) {
var t = timer,
d = t.d,
h = t.h,
m = t.m,
s = t.s;
if(s > 0) {
s -= 1;
}else {
m -= 1;
s = 59;
}
if(m < 0) {
h -= 1;
m = 59;
}
if(h < 0) {
d -= 1;
h = 23;
}
return {
d: d,
h: h,
m: m,
s: s
};
}
function toHTML(timer) {
var t = timer;
d.innerHTML = addZero(t.d);
h.innerHTML = addZero(t.h);
m.innerHTML = addZero(t.m);
s.innerHTML = addZero(t.s);
}
function addZero(num) {
return num.toString().length === 1 ? '0' + num : num;
}
run(start, now);
</script>
</html>
start和end都是可设置的,按秒走
追问
你好,我要的不是这种倒计时的效果,而是根据我提供的时间2015-05-22 10:23:54,按照这个时间点开始,每秒的增加时间,来实现时间增加的效果
追答
这个应该是符合要求的,只进行简单的测试,出现问题追问就行
展开全部
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
// 页面加载时显示
document.getElementById('time').innerHTML = new Date().Format('yyyy-MM-dd hh:mm:ss');
// 间隔一秒更新一次
function displayTime() {
document.getElementById('time').innerHTML = new Date().Format('yyyy-MM-dd hh:mm:ss');
}
window.setInterval(displayTime, 1000);
<div id="time">
</div>
追问
你好,我上面描述了不是获取系统当前的时间,而是根据我提供的时间2015-05-22 10:23:54,来每秒的增加时间,请问需要怎么实现??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询