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

需要使用javascript告诉我从当前日期到输入日期的弹性天数、月份和年份,javascript,date,time,difference,Javascript,Date,Time,Difference,我有它,所以它会显示一个日期与年,月,日。但当我把我的生日写进27岁329个月10299天时,它就显示出来了。我需要它以12个月的格式显示月份,以31天的格式显示天数 ` `计算年份差异后,需要修改拾取日期的对象,使其具有相同的年份。这样,您可以计算月/日 <script> function handleDateChanged() { var data = document.getElementById("date").value; var dateP

我有它,所以它会显示一个日期与年,月,日。但当我把我的生日写进27岁329个月10299天时,它就显示出来了。我需要它以12个月的格式显示月份,以31天的格式显示天数

`


`

计算年份差异后,需要修改拾取日期的对象,使其具有相同的年份。这样,您可以计算月/日

<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>

函数handleDateChanged(){
var数据=document.getElementById(“日期”).value;
var dateParts=data.split(“/”);
var pickedDate=新日期(+dateParts[2],dateParts[1]-1,+dateParts[0]);
var currentDate=新日期();
var years=currentDate.getYear()-pickedDate.getYear();
pickedDate.setYear(pickedDate.getFullYear()+年);
控制台日志(PickeDate);
var diff=Math.floor(currentDate.getTime()-pickeDate.getTime());
var日=1000*60*60*24;
变量天数=数学下限(差异/天);
var月数=数学下限(天/31);
//变量年=数学下限(月/12);
document.getElementById(“结果”).innerHTML=年+年+月+月+天+天
}

如果我的回答对您有帮助,请批准。谢谢!现在已经有一些关于如何获得这个职位的问题了。您的算法存在缺陷,因为并非所有月份都有31天(并非所有天数都有24小时长,但考虑到月份错误,这只是一个小细节)。
    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>