在Javascript中转换日期格式并计算两个日期之间的差异

在Javascript中转换日期格式并计算两个日期之间的差异,javascript,date,Javascript,Date,我有两次Javascript约会- 格式为2016年2月16日 格式为26-01-2015 现在,我必须使用javascript以年和月为单位获得这两个日期的差异 我不知道怎么做,因为两个日期的格式不同。在控制台中粘贴以下代码并检查。希望能有帮助 var d1 = "16-Feb-2016"; var d2 = "26-01-2015"; var date1 = new Date(d1); // The date to be formatted in mm-dd-

我有两次Javascript约会-

  • 格式为2016年2月16日
  • 格式为
    26-01-2015
  • 现在,我必须使用javascript以年和月为单位获得这两个日期的差异


    我不知道怎么做,因为两个日期的格式不同。

    在控制台中粘贴以下代码并检查。希望能有帮助

        var d1 = "16-Feb-2016";
        var d2 = "26-01-2015";
        var date1 = new Date(d1);
        // The date to be formatted in mm-dd-yy
        var date2 = (d2).split("-");
        date2 = date2[1] + "-" + date2[0] + "-" + date2[2];
        date2 = new Date(date2);
    
        function getDiff(date1, date2) {
        var monthDiff= (date1.getFullYear()*12)+(date1.getMonth()+1)-(date2.getFullYear()*12)-(date2.getMonth()+1);
        var diffYear = parseInt(monthDiff/12);
        var diffMonth = monthDiff%12;
        return (diffYear + " years, " + diffMonth + " month");
        }
    
        var difference = getDiff(date1, date2);
        console.log(difference);
    

    这里有很多关于解析日期的问题和答案,OP中的格式需要大约3行代码。获得年和月的差异并不是一件小事,我认为Moment.js不能准确地做到这一点。看一看答案(其中包括一个可以轻松修改以适应此处格式的解析器)。