javascript age calculator一直给出错误的数字,

时间:2013-10-25 20:30:07

标签: javascript

我正在尝试做一个javascript程序并计算使用年限,我已经完成了以下代码,

function submitForm() {
    var d = new Date();
    var year = d.getFullYear();
    var month = d.getMonth();
    var days = d.getDay();
    var minutes = d.getMinutes();
    var hours = d.getHours();
    var byear = document.dataform.year.selectedIndex;
    var bmonth = document.dataform.month.selectedIndex;
    var bday = document.dataform.day.selectedIndex;
    var bhours = bday * 24;
    var bmin = 60 * b hours;
    var dyears = year - byear;
    var dmonth = month - bmonth;
    var ddays = (days - bday);
    var dhours = hours - bhours;
    var dminutes = minutes - bmin;
    var daysTillBDay = 365 - bday;
    if (isLeapYear() == true) {
        dyears = year - byear;
        dmonth = month - bmonth;
        ddays = (days - bday) + 1;
        dhours = hours - bhours;
        dminutes = minutes - bmin;
        daysTillBDay = 365 - bday;
    }
    var el = document.getElementsByName('uyears');
    el[0].value = dyears + " years old.";
    el = document.getElementsByName('umonths');
    el[0].value = dmonth + " months old.";
    document.getElementsByName('udays')[0].value = ddays;
    document.getElementsByName('lmonths')[0].value = dmonth;
    document.getElementsByName('ldays')[0].value = ddays;
    document.getElementsByName('lhrs')[0].value = dhours;
    document.getElementsByName('lmin')[0].value = dminutes;
    document.getElementsByName('bdays')[0].value = daysTillBDay + " days left till your birthday.";
}

我想在我尝试运行程序之前我会工作,在我运行程序之后,我发现程序给了我几乎错误的错误,我有像2013年(最新的年份)和月份的那一年如果我输入11,将等于-1的负面数字。我只是试图找到用户年龄,我认为是今天的日期(今天的大门) - (生日日期),但现在不工作,anyobne知道什么&gt ;

1 个答案:

答案 0 :(得分:0)

问题非常简单(我自己犯了一个错误) - new Date().getDay()返回一周中的一天(周一为0,周日为6),而不是月中的那一天。

您正在寻找的功能是new Date().getDate(),它在1月1日返回1,在圣诞节返回25,依此类推。