gpt4 book ai didi

javascript - 更改时在输入字段中显示年龄

转载 作者:行者123 更新时间:2023-12-03 11:47:54 25 4
gpt4 key购买 nike

我有 2 个 HTML 字段,分别称为出生日期和年龄。

有一个计算年龄的按钮。现在我想在不按下按钮的情况下计算这个年龄。当我在出生日期字段中输入完内容后,它应该会自动显示年龄。如何使用 JavaScript 做到这一点?

<tr>
<td>Birth Date</td>
<td><input type="text" name="birth_date" id="datepicke" value="" maxlength="11"
placeholder="birth date" /></td>
</tr>
<tr>
<td>Age</td>
<td>
<button type="button" onclick="displayDate()">Display Difference</button>
<p id="demo" style="vertical-align: top">

<input type="text" name="age" value="" maxlength="3" placeholder="age" /></td>
</tr>

<script>
function displayDate()
{
var dof = document.getElementById('datepicke').value;
var d1 = new Date(dof); //from date yyyy-MM-dd
var d2 = new Date(); //to date yyyy-MM-dd (taken currentdate)
var Months = d2.getMonth() - d1.getMonth();
var Years = d2.getFullYear() - d1.getFullYear();
var Days = d2.getDate() - d1.getDate();
Months = (d2.getMonth() + 12 * d2.getFullYear()) -
(d1.getMonth() + 12 * d1.getFullYear());
var MonthOverflow = 0;
if (Months - (Years * 12) < 0)
MonthOverFlow = -1;
else
MonthOverFlow = 1;
if (MonthOverFlow < 0)
Years = Years - 1; Months = Months - (Years * 12);
var LastDayOfMonth = new Date(d2.getFullYear(),
d2.getMonth() + 1, 0, 23, 59, 59);
LastDayOfMonth = LastDayOfMonth.getDate();
if (MonthOverFlow < 0 && (d1.getDate() > d2.getDate())) {
Days = LastDayOfMonth + (d2.getDate() - d1.getDate()) - 1;
}
else
Days = d2.getDate() - d1.getDate();
if (Days < 0)
Months = Months - 1;
var l = new Date(d2.getFullYear(), d2.getMonth(), 0);
var l1 = new Date(d1.getFullYear(), d1.getMonth() + 1, 0);
if (Days < 0)
{
if (l1 > l)
Days = l1.getDate() + Days;
else
Days = l.getDate() + Days;
}
document.getElementById("demo").innerHTML = Years +
" Year(s)";
//, " + Months + " Month(s), " + Days + "Day(s
}
</script>

更新:

<tr>
<td>Birth Date</td>
<td><input onblur="displayDate()" type="text" name="birth_date" id="datepicke" value=""
maxlength="11" placeholder="birth date" /></td>
</tr>
<tr>
<td>Age</td>
<td><input type="text" name="age" id="age" value="" maxlength="3" placeholder="age" /></td>
</tr>

Javascript代码:

<script>
function displayDate()
{
var dof = document.getElementById('datepicke').value;
var d1 = new Date(dof); //from date yyyy-MM-dd
var d2 = new Date(); //to date yyyy-MM-dd (taken currentdate)
var Months = d2.getMonth() - d1.getMonth();
var Years = d2.getFullYear() - d1.getFullYear();
var Days = d2.getDate() - d1.getDate();
Months = (d2.getMonth() + 12 * d2.getFullYear()) -
(d1.getMonth() + 12 * d1.getFullYear());
var MonthOverflow = 0;
if (Months - (Years * 12) < 0)
MonthOverFlow = -1;
else
MonthOverFlow = 1;
if (MonthOverFlow < 0)
Years = Years - 1; Months = Months - (Years * 12);
var LastDayOfMonth = new Date(d2.getFullYear(),
d2.getMonth() + 1, 0, 23, 59, 59);
LastDayOfMonth = LastDayOfMonth.getDate();
if (MonthOverFlow < 0 && (d1.getDate() > d2.getDate())) {
Days = LastDayOfMonth + (d2.getDate() - d1.getDate()) - 1;
}
else
Days = d2.getDate() - d1.getDate();
if (Days < 0)
Months = Months - 1;
var l = new Date(d2.getFullYear(), d2.getMonth(), 0);
var l1 = new Date(d1.getFullYear(), d1.getMonth() + 1, 0);
if (Days < 0)
{
if (l1 > l)
Days = l1.getDate() + Days;
else
Days = l.getDate() + Days;
}
document.getElementById("age").innerHTML = Years +
" Year(s)";
//, " + Months + " Month(s), " + Days + "Day(s
}
</script>

最佳答案

用作

 <input onchange="displayDate()" type="text" name="birth_date" id="datepicke" value="" maxlength="11" placeholder="birth date" />

关于javascript - 更改时在输入字段中显示年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25968040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com