2014-01-14 55 views
0

我在JavaScript中有一個Date對象,我需要找到確切的天數,如整數,因爲它發生(從當時到當前日期)。如果在同一個月內,我知道如何做到這一點,但我需要這樣做才能在過去的所有日期中正常工作。如果它與今天相同的實際日期(午夜之後),則應顯示0,如果它在最近的午夜之前(前一實際日期)則顯示1,等等。午夜是新的一天,而不是24小時。我試圖自己寫這個,但隨着一個月中的天數變化,它很快就成爲一個問題。 Date對象和當前時間應該已經在你的本地時區,所以時區在這裏並不重要。JavaScript獲取日期對象和現在之間的天數

回答

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; 
} 
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())); 
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))) 
相關問題