Javascript Date Differences

by Diya_Khan

JavaScript

function getTimeDiff(date1,date2,diffOption)
{
    var diff = Math.abs(date1 - date2);
    switch(diffOption)
    {
        case 'years':
            return yearsDiff(date1,date2);
            break;
        case 'months':
            return monthDiff(date1,date2);
            break;
        case 'days':
            return daysDiff(date1,date2);
            break;
        case 'hours':
            return hoursDiff(date1,date2);
        default:
            return diff;
            break;
    }
};

function yearsDiff(date1,date2)
{
    var diff = Math.abs(date1 - date2);
    var years = Math.floor(diff / 1000 / 60 / 60 / 24 / 365); 
    return years;
};

function monthDiff(date1, date2) {
    var months;
    months = (date2.getFullYear() - date1.getFullYear()) * 12;
    months -= date1.getMonth();
    months += date2.getMonth();
    return months;
};

function daysDiff(date1,date2){
    var diff = Math.abs(date1 - date2);
    var days = Math.round(diff / 1000 / 60 / 60 / 24);
    return days;
};
function hoursDiff(date1,date2)
{
    var diff = Math.abs(date1 - date2);
    var hours = Math.round(diff/3600/1000);
    return hours;
};

var d1 = new Date(2011, 01, 01 , 01, 00, 00, 0000);
var d2 = new Date(2011, 02, 01, 01, 00, 00, 0000);

document.write('<br/> Start Date: ' + d1);
document.write('<br/> End Date: ' + d2);    
document.write('<br/> Time Diff: ' + getTimeDiff(d1,d2));
document.write('<br/> Years Diff: ' + getTimeDiff(d1,d2,'years'));
document.write('<br/> Month Diff: ' + getTimeDiff(d1,d2,'months'));
document.write('<br/> Days Diff: ' + getTimeDiff(d1,d2,'days'));
document.write('<br/> Hours Diff: ' + getTimeDiff(d1,d2,'hours'));