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

How to return a string difference between two dates (current date and input date) in JavaScript?

本文关键字:日期 之间 输入 字符串 当前日期 返回 两个 JavaScript      更新时间:2023-09-26

我有一个函数,它是用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;
}

提前感谢!

我又一次迟到了,但正如@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/

您可以创建两个Date对象并对它们进行子运算。然后获取结果的天、小时、分钟、秒,并选择要输出的结果。我没有代码atm,但Date的使用非常直观。

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