通过减法日期获取人的年龄

时间:2012-10-23 08:01:12

标签: jquery jquery-selectors

假设我有以下代码:

$('#dateNaissance').datepicker({
        onSelect:function(date){
        var today=new Date();
        console.log(today.getTime());
        console.log(new Date(date));
        console.log(DateDiff(today,new Date(date)));

        $('#txtage').val(DateDiff(today,new Date(date)));


        }        


    });


    function DateDiff(date1,date2) {
        return (date1.getTime() - date2.getTime());
    }
    <tr>
        <td>Date de naissance :</td>
        <td><input type="text" name="txtdob" class="validate[required] text-input datepicker TextInput"  id="dateNaissance"/></td>
        <td>Age :<br /><input type="text" name="txtage" class="validate[required] TextInput" id="txtage"/></td>
    </tr>

我需要:

当用户从日期选择器中选择日期时,它会立即计算自动日期,以便在<td>Age :<br /><input type="text" name="txtage" class="validate[required] TextInput" id="txtage"/></td>例如:23 year中获得结果。

问题

当我按照上面的代码进行操作时,它会将结果显示为<td>Age :<br /><input type="text" name="txtage" class="validate[required] TextInput" id="txtage"/></td> ex:1954172067中的数字。我不知道如何修复此问题。任何人都请帮助我,谢谢。

2 个答案:

答案 0 :(得分:2)

你得到的这个数字是两个日期之间的秒数。您需要做的就是将其划分为您需要的范围。例如,天数为days = Math.round(x / 1000 / 60 / 60 / 24)

答案 1 :(得分:0)

我希望下面的代码能为您提供帮助:

 $('#dateNaissance').datepicker({
        onSelect:function(date){
        var today=new Date();
        console.log(today.getTime());
        console.log(new Date(date));
        console.log(DateDiff(today,new Date(date)));        
        $('#txtage').val(DateDiff(today,new Date(date)));       
        }        
});
    function DateDiff(date1,date2) {
        var val = (date1.getTime() - date2.getTime());
        var days = Math.round(val /1000 / 60 / 60 / 24);
        var years = Math.round(days /365);
        return years;
    }