用javascript如何实现设置一个任意时间(20xx年xx月xx日xx时xx分xx秒),并按照这个时间走下去?
帮助文档里只有setFullYear(19xx,xx,xx)这个方法,可是十分秒该如何设置,并实现精准的走时。(图片是获取当前时间的程序),新手求思路。
先求出指定时间和当前时间的差,然后每隔一秒获取一下当前时间,然后显示的时候把这个差值处理了。
http://blog.csdn.net/csethcrm/article/details/7937880
每秒钟定时调用一次,再格式化就行了
直接 new Date(年,月,日,时,分,秒)生成日期,然后setSecodes就行了,注意月份从0开始
<div id="dvTime"></div>
<script type="text/javascript">
var d = new Date(2015, 0, 1, 1, 1, 1);//2015-1-1 1:1:1
var dv = document.getElementById('dvTime');
dv.innerHTML = d.toLocaleString();
setInterval(function () {
d.setSeconds(d.getSeconds() + 1);//+1s
dv.innerHTML = d.toLocaleString();
}, 1000);
</script>
这样由于每次显示的依据都是系统当前时间,精度应该要比只依赖setInterval方法加1s高一点。。
```
var setDate = new Date(2015, 0, 1, 1, 1, 1);//2015-1-1 1:1:1 var diff = new Date().getTime() - setDate.getTime(); var dv = document.getElementById('dvTime'); dv.innerHTML = setDate.toLocaleString(); setInterval(function () { dv.innerHTML = new Date(new Date().getTime()-diff).toLocaleString(); }, 1000);
<div id="dvTime"></div>
<script type="text/javascript">
var setDate = new Date(2015, 0, 1, 1, 1, 1);//2015-1-1 1:1:1
var diff = new Date().getTime() - setDate.getTime();
var dv = document.getElementById('dvTime');
dv.innerHTML = setDate.toLocaleString();
setInterval(function () {
dv.innerHTML = new Date(new Date().getTime()-diff).toLocaleString();
}, 1000);
</script>
点击查看https://jsfiddle.net/Ly6fejLe/1/
相对于SHOWBO的,这个时间可能更准确点
var date = new Date(1999, 11, 31, 23, 54, 12);//注意月份是0-11,1月为0,12月为11
var diff = new Date() - date;
var now = new Date();
var date = new Date(Date.parse(now) - diff);