How do i find the difference between two dates using Javascript

前端 未结 6 1641
孤城傲影
孤城傲影 2020-12-31 19:21

I want to get reaming days to go particular date so i am trying to detection of particular date with today date. but this not working here is my code If the date is next m

相关标签:
6条回答
  • 2020-12-31 19:29

    Here is the answer, i found this from here my js-fiddle is here

    var d = new Date();
    var curr_date = d.getDate();
    var curr_month = d.getMonth();/* Returns the month (from 0-11) */
    var curr_month_plus= curr_month+1; /* because if the month is  4 it will show output 3 so we have to add +1 with month*/ 
    var curr_year = d.getFullYear();
    function dstrToUTC(ds) {
        var dsarr = ds.split("/");
         var mm = parseInt(dsarr[0],10);
         var dd = parseInt(dsarr[1],10);
         var yy = parseInt(dsarr[2],10);
         return Date.UTC(yy,mm-1,dd,0,0,0); }
        function datediff(ds1,ds2) {
         var d1 = dstrToUTC(ds1);
         var d2 = dstrToUTC(ds2);
         var oneday = 86400000;
         return (d2-d1) / oneday;    }
        var a =curr_month_plus+ '/' + curr_date + '/' + curr_year;
        var b;   
        b = "5/26/2012";
        document.write(+datediff(a,b)+" day(s)<br>");
    
    0 讨论(0)
  • 2020-12-31 19:33

    Your code

    date1=27/5/2012
    

    Actually means 27 divided by 5 divided by 2012. It is equivalent to writing

    date1 = 0.0026838966202783303
    

    date1 will be a number, and this number has no getDate method.

    If you declared them as actual date objects instead

    var date2 = new Date(2012, 3, 19);
    var date1 = new Date(2012, 4, 27);
    

    You would be able to perform

    var diff = date1 - date2;
    

    This would give you the difference in milliseconds between the two dates.

    From here, you could calculate the number of days like so:

    var days = diff / 1000 / 60 / 60 / 24;
    
    0 讨论(0)
  • 2020-12-31 19:33

    Please understand what jQuery is made for.

    jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development.

    You want to use basic Javacript or as Juan G. Hurtado states another library like momentjs.

    0 讨论(0)
  • 2020-12-31 19:41

    jQuery has not built-in date management functions. Try with: http://momentjs.com/

    0 讨论(0)
  • 2020-12-31 19:47
    function getDateDiff(date1, date2, interval) {
        var second = 1000,
        minute = second * 60,
        hour = minute * 60,
        day = hour * 24,
        week = day * 7;
        date1 = new Date(date1).getTime();
        date2 = (date2 == 'now') ? new Date().getTime() : new Date(date2).getTime();
        var timediff = date2 - date1;
        if (isNaN(timediff)) return NaN;
        switch (interval) {
        case "years":
            return date2.getFullYear() - date1.getFullYear();
        case "months":
            return ((date2.getFullYear() * 12 + date2.getMonth()) - (date1.getFullYear() * 12 + date1.getMonth()));
        case "weeks":
            return Math.floor(timediff / week);
        case "days":
            return Math.floor(timediff / day);
        case "hours":
            return Math.floor(timediff / hour);
        case "minutes":
            return Math.floor(timediff / minute);
        case "seconds":
            return Math.floor(timediff / second);
        default:
            return undefined;
        }
    }
    
    console.log(getDateDiff('19/04/2012', '27/5/2012', 'days'));
    
    0 讨论(0)
  • 2020-12-31 19:48

    I think you can subtract it:

    var date2 = new Date(2012, 3, 19); // 1st argument = year, 2nd = month - 1 (because getMonth() return 0-11 not 1-12), 3rd = date
    var date1 = new Date(2012, 4, 27);
    var distance = date1.getTime() - date2.getTime();
    distance = Math.ceil(distance / 1000 / 60 / 60 / 24); // convert milliseconds to days. ceil to round up.
    document.write(distance);
    
    0 讨论(0)
提交回复
热议问题