【问题标题】:How to return a string difference between two dates (current date and input date) in JavaScript?如何在 JavaScript 中返回两个日期(当前日期和输入日期)之间的字符串差异?
【发布时间】:2013-12-13 11:20:46
【问题描述】:

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

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;
}

提前致谢!

【问题讨论】:

标签: javascript datetime


【解决方案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/

【讨论】:

    【解决方案2】:

    您可以创建两个 Date 对象并将它们相减。然后获取结果的天数、小时数、分钟数、秒数并选择输出哪个。 我没有代码atm,但是Date的用法很直观。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 2015-09-14
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多