需要使用 javascript 来告诉我从当前日期到输入日期过去的天数、月份和年份

Need to use javascript to tell me elasped days,month, and years from current date to date entered

我有它,所以它会显示包含年、月和日的日期。但是当我输入生日时它显示为 27 年 329 个月 10299 天。我需要它以 12 个月的格式显示月份,以 31 天的格式显示天数。

`

    <p>
      <h2>Pick A Date!(dd/mm/yyyy</h2>
        <center><input id="date">
        <button onclick="handleDateChanged()">Calculate</button></center>
    </p>

    <p>
       <h2>It's been since: <span id="result"></span></h2>
    </p>

    function handleDateChanged() {
    var data = document.getElementById("date").value;
            var dateParts = data.split("/");

            var pickedDate = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]); 
            var currentDate = new Date();

            console.log(pickedDate);
            console.log(currentDate);

            var diff = Math.floor(currentDate.getTime() - pickedDate.getTime());
            var day = 1000 * 60 * 60 * 24;

            var days = Math.floor(diff/day);
            var months = Math.floor(days/31);
            var years = Math.floor(months/12);

            document.getElementById("result").innerHTML = years + ' years, ' + months + ' months, ' + days + ' days'
    }

`

计算出年份差异后,需要将选取日期的对象修改为同一年份。这样,您就可以计算月/日。

<script>
function handleDateChanged() {
    var data = document.getElementById("date").value;
            var dateParts = data.split("/");

            var pickedDate = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0]); 
            var currentDate = new Date();

            var years = currentDate.getYear() - pickedDate.getYear();
            pickedDate.setYear(pickedDate.getFullYear() + years);

            console.log(pickedDate);

            var diff = Math.floor(currentDate.getTime() - pickedDate.getTime());
            var day = 1000 * 60 * 60 * 24;

            var days = Math.floor(diff/day);
            var months = Math.floor(days/31);
       //     var years = Math.floor(months/12);

            document.getElementById("result").innerHTML = years + ' years, ' + months + ' months, ' + days + ' days'
    }
</script>