将JavaScript年龄计算返回到屏幕

时间:2013-01-28 22:18:08

标签: javascript html5 date-arithmetic

使用HTML 5,CSS,JavaScript和JQuery创建Web应用程序。

我使用了新的Date()函数来生成今天的日期。 我还使用了JQuery“datepicker”函数,以允许用户选择他们的DOB。这些都很完美。

我想要的是在选择DOB时计算年龄。 我已经包含了一个函数来计算依赖于日期和DOB但不能让它将数字返回到屏幕的年龄。这可以在下面看到。

<tr>
    <td>Age:</td>
    <!--td><input type="text" id="age" /></td-->
    <td> 
            <script type = "text/javascript">
        var date = document.getElementById("adDate").value
        var dob = document.getElementById("datepicker").value
        var pattern = /^\d{1,2}\/\d{1,2}\/\d{4}$/
        if (pattern. test(dob)) {
            var currentYear = date.getFullYear()
            var birthYear = date.getFullYear()
            var age = currentYear - birthYear
            document.write(age)
        } 
        </script>
    <td>
</tr>

我在线搜索解决方案,但只是获得基本的JavaScript年龄计算。 任何帮助将不胜感激。

非常感谢。

我尝试应用一些更改,但无济于事。 我更新了JS,如下所示。

var date = document.getElementById("adDate").value
var dob = document.getElementById("datepicker").value
var pattern = /^\d{1,2}\/\d{1,2}\/\d{4}$/
if (pattern. test(dob)) {
    var currentYear = new Date(date).getFullYear()
    var birthYear = new Date(dob).getFullYear()
    var age = currentYear - birthYear

    var spanAge = document.getElementById("age")
    spanAge.innerHTML = age
} 

还有HTML。

<tr>
    <td>Age:</td>
    <td><span id="age"></span></td>
</tr>

必须与使用datepicker生成DOB有关。我尝试应用onSelect函数,但似乎没有任何效果。

还有其他建议吗?

3 个答案:

答案 0 :(得分:0)

您应确保创建有效的Date对象,您可以从UI元素中传递值:

var currentYear = new Date().getFullYear()            
var birthYear = new Date('5/6/1987').getFullYear()             
var age = currentYear - birthYear             

答案 1 :(得分:0)

修复您的代码:

var currentYear = new Date(date).getFullYear()
var birthYear = new Date(dob).getFullYear()

恢复您的表格单元格:

<td><span id="age"></span></td>

而且,而不是document.write使用这个:

// document.write(age) // Remove this line.
var spanAge = document.getElementById("age")
spanAge.innerHTML = age

这是一个模拟:

http://jsfiddle.net/dEaae/1/

答案 2 :(得分:-2)

您应该选择一个html元素来显示结果

例如:

            <div id = "printHere"></div>

             <tr>
<td>Age:</td>
<!--td><input type="text" id="age" /></td-->
<td> 
        <script type = "text/javascript">
         //assuming you have "age" here

          //using jquery
          $("#printHere").html(age);
    } 
    </script>
<td>