如何在JavaScript中返回两个日期(当前日期和输入日期)之间的字符串差异?

时间:2013-12-13 11:20:47

标签: javascript datetime

我有一个用JavaScript编写的函数,用于以日/月/年小时/分钟/秒AM / PM 格式获取日期时间。我想要的是一个函数,它允许我返回以下类型的字符串(1秒,或5秒,或2分钟,或4小时,或1天,或5个月,或5年)。以下是示例代码段:

function (var inputDate)
{
    var difference = dateNow - inputDate;
    //1 second, or 5 seconds, or 2 minutes, or 4 hours, or 1 day, or 5 months, or 5 years - I want to return the highest difference between both dates (current date and the date, which I input)
    return string difference;
}

提前致谢!

2 个答案:

答案 0 :(得分:1)

我再次参加聚会,但是@ user1950292建议您可以减去两个日期并格式化差异。类似的东西:

function dateDiffString(a,b) {
    var diff = (a.getTime() - b.getTime());
    var diffs = {
        years  : Math.floor((diff) / (1000 * 60 * 60 * 24 * 365)),
        months : Math.floor((diff) / (1000 * 60 * 60 * 24 * 30)),
        weeks  : Math.floor((diff) / (1000 * 60 * 60 * 24 * 7)),
        days   : Math.floor((diff) / (1000 * 60 * 60 * 24)),
        hours  : Math.floor((diff) / (1000 * 60 * 60)),
        mins   : Math.floor((diff) / (1000 * 60)),
        secs   : Math.floor((diff) / (1000))
    }
    //iterate through diffs to find first number > 0
    for (var prop in diffs) {
       if(diffs.hasOwnProperty(prop) && diffs[prop] > 0){
          return diffs[prop] + " " + prop;
       }
    }
}

var today = new Date();
var anotherDay = new Date("2013 12 13,11:52:39");
alert(dateDiffString(today,anotherDay));

http://jsfiddle.net/xuqNt/

答案 1 :(得分:0)

您可以创建两个Date对象并对其进行减法。然后获取结果的天,小时,分钟,秒并选择输出的内容。 我没有代码atm,但Date的使用非常直观。

https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date