它可以在没有插件的 JavaScript 中完成。
您需要获取当前日期时间,直到分母比您显示的时间小一。以您的示例为例,这意味着您需要将所有内容都降低到毫秒。
var currentTime = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds());
然后,您会发现现在与所需时间之间的差异。这以毫秒为单位提供给您。
var diff = endtime - currentTime;
因为这是以毫秒为单位返回的,所以您需要将它们转换为秒、分钟、小时、天等......这意味着确定每个分母中有多少毫秒。然后您可以使用 mod 和 divide 来返回每个单元所需的数字。见下文。
var miliseconds = 1;
var seconds = miliseconds * 1000;
var minutes = seconds * 60;
var hours = minutes * 60;
var days = hours * 24;
var years = days * 365;
//Getting the date time in terms of units
//Floored so that they go together (to get just year/days/hours etc.. by themselves you need to use Math.round(diff/desired unit);
var numYears = Math.floor(diff / years);
var numDays = Math.floor((diff % years) / days);
var numHours = Math.floor((diff % days) / hours);
var numMinutes = Math.floor((diff % hours) / minutes);
var numSeconds = Math.round((diff % minutes) / seconds);
一旦有了要显示的分母,就可以通过不同的方法将其返回到 html 页面。例如:
document.getElementById("tyears").innerHTML = numYears;
这总结了你的方法。但是,要使其以设定的时间间隔运行(这就是您在 JavaScript 函数中更新 HTML 显示的原因),您需要调用以下函数,提供函数名称并以毫秒为单位提供时间间隔。
//Call the count down timer function every second (measured in miliseconds)
setInterval(countDown(endtime), 1000);