在javascript中使用事件侦听器获取年龄 函数getAge(日期字符串){ var today=新日期(); var birthDate=新日期(日期字符串); var age=today.getFullYear()-birthDate.getFullYear(); var m=today.getMonth()-birthDate.getMonth(); 如果(m

在javascript中使用事件侦听器获取年龄 函数getAge(日期字符串){ var today=新日期(); var birthDate=新日期(日期字符串); var age=today.getFullYear()-birthDate.getFullYear(); var m=today.getMonth()-birthDate.getMonth(); 如果(m,javascript,Javascript,我的Javascript脚本中有这段代码,我试图找到如何在html表单中输入的情况下显示生日。是否有一个事件侦听器可用于在输入中传递此函数以获取日期并计算年龄?HTML function getAge(dateString) { var today = new Date(); var birthDate = new Date(dateString); var age = today.getFullYear() - birthDate.getFull

我的Javascript脚本中有这段代码,我试图找到如何在html表单中输入的情况下显示生日。是否有一个事件侦听器可用于在输入中传递此函数以获取日期并计算年龄?

HTML

function getAge(dateString) {
        var today = new Date();
        var birthDate = new Date(dateString);
        var age = today.getFullYear() - birthDate.getFullYear();
        var m = today.getMonth() - birthDate.getMonth();
        if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
            age--;
        }
        return age;
    }

计算年龄
JS

函数getAge(){
var dateString=document.getElementById('input0age')。值;
var today=新日期();
var birthDate=新日期(日期字符串);
var age=today.getFullYear()-birthDate.getFullYear();
var m=today.getMonth()-birthDate.getMonth();
如果(m<0 | |(m==0&&today.getDate()
或事件侦听器

function getAge() {
    var dateString = document.getElementById('input0age').value;
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}
var input=document.getElementById('input-age');
addEventListener('input',function(){
getAge(input.value)
});
函数getAge(日期字符串){
var today=新日期();
var birthDate=新日期(日期字符串);
var age=today.getFullYear()-birthDate.getFullYear();
var m=today.getMonth()-birthDate.getMonth();
如果(m<0 | |(m==0&&today.getDate()
我成了图书馆的忠实粉丝。使用该库,计算时代非常简单:

var input = document.getElementById('input-age');

input.addEventListener('input', function() {
   getAge(input.value)
});

function getAge(dateString) {
    var today = new Date();
    var birthDate = new Date(dateString);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    return age;
}
其中dateString类似于:“YYYY-MM-DD”。要解析其他日期格式,必须在构造函数上使用适当的解析格式,如:

moment().diff( moment( dateString ),'years');

其中,dateString采用该MM/DD/YYYY格式。但是在你的代码中包含moment.js会让这件事变得相当愚蠢

这不会打印在html表单上?一旦获得值,就可以使用选择器路径在任何位置显示它<代码>文档.getElementById('output')。值=年龄这是针对您推荐的第一个选项还是第二个选项?虽然这可能有用,但并不能回答问题,问题是关于如何运行代码以响应用户输入,而不是关于如何执行年龄计算。
moment().diff( moment( dateString ),'years');
moment().diff( moment( dateString, 'MM/DD/YYYY' ), 'years' );