JavaScript获取日期对象与现在之间的天数

时间:2014-01-14 07:55:07

标签: javascript date getdate

我在JavaScript中有一个Date对象,我需要找到它发生的确切天数(如整数)(在当时和当前日期之间)。我知道如果在同一个月内如何做到这一点,但我需要这个在过去的所有日期都能正常工作。它应该显示0,如果它是与今天相同的物理日(午夜之后),如果它是在最近的午夜之前(上一个实际日),则应该显示1,依此类推。午夜旅行新的一天,而不是24小时。我自己尝试写这个,但随着一个月内的天数变化,它很快就成了一个问题。 Date对象和当前时间应该已经在您的本地时区,因此时区在这里无关紧要。

3 个答案:

答案 0 :(得分:1)

计算开始时间和结束时间之间的差异。

function calc(begin, end) {
    //suppose begin, end are two Date Object to calc
    var diffmsec = end.getTime() - begin.getTime();
    var diffday = Math.floor(diffmsec / (3600*24*1000));
    var remainder = diffmsec % (3600*24*1000);
    var beginDayTime = begin.getHours()*3600*1000 + begin.getMinutes()*60*1000
                     + begin.getSeconds()*1000 + begin.getMilliseconds();
    //if [beginDayTime] + [remainder] > 1 day, [diffday]++
    if (beginDayTime + remainder > 24*3600*1000){
        diffday++;
    }
    return diffday;
}

答案 1 :(得分:0)

function parseDate(dateString) {
var mmddyy = dateString.split('/')
return new Date(mmddyy [2], mmddyy [0]-1, mmddyy [1]);}


function daydiff() {
return (parseDate($('#second').val())-parseDate($('#first').val()))/(1000*60*60*24)}

alert(Math.floor(daydiff()));

答案 2 :(得分:0)

/* 2014-01-15, 11:00 */
var date = new Date(2014, 0, 15, 11, 0);
var today = new Date();
Math.abs(Math.floor((date - today) / (1000*60*60*24)))