【发布时间】:2014-06-03 03:39:43
【问题描述】:
我正在努力学习更多关于 JavaScript 的知识,并决定制作一个倒计时计时器,它的显示时间从几年一直到毫秒。这对我来说只是一个学习实验。
分钟不正确。如果我刷新浏览器,秒和分钟总是从 59 开始。我认为这可能是因为我正在调用 Date 对象并可能重置它。我正在寻找的是倒计时到某个日期。
因为这对我来说是一个学习实验,如果您看到其他可以改进的地方,请告诉我。
var dateA = new Date();
var dateB = new Date('June 3, 2014 00:27:00');
var cntr = setInterval(clock, 10);
function clock()
{
dateB = (dateB - 10);
var date = new Date(dateB);
var yrs = Math.abs(date.getUTCFullYear() - dateA.getUTCFullYear() );
var mos = Math.abs(date.getUTCMonth() - dateA.getUTCMonth());
var days = Math.abs(date.getUTCDate() - dateA.getUTCDate());
var hrs = Math.abs(date.getUTCHours() - dateA.getUTCHours());
var mins = Math.abs(date.getUTCMinutes() - dateA.getUTCMinutes());
var secs = Math.ceil(date.getUTCSeconds() - dateA.getUTCSeconds() / 60);
var mill = Math.ceil(date.getUTCMilliseconds() - dateA.getUTCMilliseconds() / 999);
var str =
yrs + ' Years ' +
mos + ' Months ' +
days + ' Days ' +
hrs + ' Hours ' +
mins + ' Mins ' +
secs + ' Secs ' +
mill + ' Mill';
document.getElementById('clock').innerHTML = str;
}
【问题讨论】:
-
这是什么 - dateB = (dateB - 10);
-
这是从原始日期对象倒数。
-
setInterval每 10 毫秒调用一次时钟函数。为了减少时钟功能,我需要dateB = (dateB - 10)。在没有它的情况下回显dateB的值什么都不会。
标签: javascript