js 时间 根据获取的时间,控制页面上的时间每秒更新 ps:JS大牛些,在线跪求

在后台获取了一个时间,如2015-05-2210:23:54,然后在页面上显示获取的时间,在该时间的基础上按秒增加时间,跟系统时间每秒更新差不多,但是这个不是获取系统时间... 在后台获取了一个时间,如2015-05-22 10:23:54,然后在页面上显示获取的时间,在该时间的基础上按秒增加时间,跟系统时间每秒更新差不多,但是这个不是获取系统时间,而是根据自己提供的时间来实现时间效果 展开
 我来答
qq1111qq111111
推荐于2016-07-19 · TA获得超过1175个赞
知道小有建树答主
回答量:1166
采纳率:66%
帮助的人:608万
展开全部
<!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,按照这个时间点开始,每秒的增加时间,来实现时间增加的效果
追答

这个应该是符合要求的,只进行简单的测试,出现问题追问就行

imonmywayagain
2015-05-25
知道答主
回答量:3
采纳率:0%
帮助的人:3478
展开全部
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,来每秒的增加时间,请问需要怎么实现??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式