计算JavaScript中的时差(天+小时+分钟+秒)

时间:2012-08-21 13:45:33

标签: javascript countdown

对不起,我意外地贴了它

我是JavaScript的新手,我正在尝试制作一个简单的倒计时脚本,该脚本应该显示结束日期和今天的服务器日期之间的差异。

这是我正在尝试做的一个很好的例子http://moblog.bradleyit.com/2009/06/javascripting-to-find-difference.html

我想要添加的唯一内容是另一个带有计算秒数的变量。我怎么能这样做?

以下是代码:


    var today = new Date();
     var Christmas = new Date("12-25-2009");
     var diffMs = (Christmas - today); // milliseconds between now & Christmas
     var diffDays = Math.round(diffMs / 86400000); // days
     var diffHrs = Math.round((diffMs % 86400000) / 3600000); // hours
     var diffMins = Math.round(((diffMs % 86400000) % 3600000) / 60000); // minutes
     alert(diffDays + " days, " + diffHrs + " hours, " + diffMins + " minutes until Christmas 2009 =)");

3 个答案:

答案 0 :(得分:1)

此代码存在两个问题:

1:您需要使用可在浏览器中接受的日期,因此需要使用/而不是 - 来格式化。

2:你正在四舍五入,在四舍五入时会给你不准确的数字。所有数字都需要向下舍入。这是一个功能,这样做:

var roundDown = function(num){
    var full = num.toString();
    var reg = /([\d]+)/i;
    var res = reg.exec(full);
    return res[1];
}

所以你的最终代码应如下所示:

var roundDown = function(num){
    var full = num.toString();
    var reg = /([\d]+)/i;
    var res = reg.exec(full);
    return res[1];
}

var today = new Date(); // date and time right now
var goLive = new Date("06/01/2013"); // target date
var diffMs = (goLive - today); // milliseconds between now & target date
var diffDays = roundDown(diffMs / 86400000); // days
var diffHrs = roundDown((diffMs % 86400000) / 3600000); // hours
var diffMins = roundDown(((diffMs % 86400000) % 3600000) / 60000); // minutes
var diffSecs = roundDown((((diffMs % 86400000) % 3600000) % 60000) / 1000 ); // seconds

答案 1 :(得分:0)

var endDate = new Date(year, month, day, hours, minutes, seconds, milliseconds);
var today = Date.now()
var timeLeft = endDate - today // timeLeft would be in milliseconds
// Parse this into months, days, hours, ...

将它放在一个函数中,然后使用setInterval将其设置为每隔一秒左右调用一次。

答案 2 :(得分:0)

这应该让您开始使用JavaScript日期对象及其相关方法。 http://www.w3schools.com/jsref/jsref_obj_date.asp

此外,查找setInterval()方法,该方法允许您以设置的间隔触发代码(例如,更新倒计时文本)。