找到两个日期之间的差异。

4

如何找到两个日期之间以这种格式表示的差异:

年份,月份(如果大于12,则年份加1),天数(如果大于30,则月份加1),小时数(如果大于24,则天数加1)

我没有这种格式:

year 3, month 34 (我将计算这个值为34年), day 345 (这个值也是如此)

我有这段代码:

http://jsfiddle.net/AQSWu/

var currentTo  = new Date(2015, 6, 1),
    currentFrom  = new Date(2013,11,1), 
    year         = currentTo.getFullYear() - currentFrom.getFullYear(),
                m1  = currentTo.getMonth() + 1,
                m2  = currentFrom.getMonth() + 1,
                month   = m1 <= m2 ? (12 - m2) + m1 : m1 - m2;

alert("From: " + currentFrom);
alert("To :" + currentTo);


            if (currentTo.getDate() < currentFrom.getDate()) {
                month = month - 1;
            }

            if (month >= 12){ month = 0; }

alert(year + ' ' + month);

但我不知道如何计算天数和小时数


1
请自己做个好事,使用一个好的库:http://momentjs.com/ - Werner Kvalem Vesterås
1个回答

3
不要单独减去年、月、日等,而是只需获取日期之间的差异(以毫秒为单位),然后以您想要的格式或单位输出即可:
var currentTo  = new Date(2015, 6, 1),
    currentFrom  = new Date(2013,11,1),
    difference = currentTo - currentFrom; // number conversion is implicit
var hours = difference / 3600000; // ms -> h
    // now do your maths

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接