我想使用JavaScript计算以岁为单位的年龄。但是,我对JavaScript语言还是很陌生,我真的不确定从哪里真正开始使用代码。
我尝试过在线搜索答案,但是许多答案与我正在寻找的答案略有不同,并且对于我目前了解编程语言的位置也略有进步。
我在网上找到的许多答案已经有他们要计算的设定日期,但是在我的情况下,我没有设定日期,取而代之的是取决于用户在其出生日期输入的日期表格,格式为: dd / mm / yyyy 。
我当前尝试计算用户年龄的尝试是以下代码:
function userAge() {
var todayDate = new Date().getMilliseconds;
var birthDateSplit = document.getElementById("birthDate").split('/');
var birthDate = new Date(birthDateSplit[2],birthDateSplit[1],birthDateSplit[0]);
var day = birthDate[2]*86400000;
var month = birthDate[1]*2629746000;
var year = birthDate[0]*31556952000;
var age = today - (day + month + year);
return age;
}
我希望它根据用户的输入返回年龄,但是我的代码没有返回值。
答案 0 :(得分:1)
我们可以通过两种方式解决此问题:
从字段中获取值,并将其公式化为日期。
var birthDayDate = document.getElementById("birthDate").value;
var from = birthDayDate.split("/");
var birthdateTimeStamp = new Date(from[2], from[1] - 1, from[0]);
代码示例:
var from = "15/09/1994".split("/");
var birthdateTimeStamp = new Date(from[2], from[1] - 1, from[0]);
var cur = new Date();
var diff = cur - birthdateTimeStamp;
// This is the difference in milliseconds
var currentAge = Math.floor(diff/31557600000);
// Divide by 1000*60*60*24*365.25
console.log(currentAge);
var birthDayDate = document.getElementById("birthDate").value;
const ageInYears = moment().diff(new Date(birthDayDate), 'years');
console.log(ageInYears);
const years = moment().diff(new Date('1981/01/01'), 'years');
console.log(years);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
答案 1 :(得分:0)
Date
构造函数将解析您的用户输入。然后,您可以使用getTime()
来获取毫秒时间。
function userAge() {
var todayDate = new Date().getTime();
var birthDate = new Date(document.getElementById("birthDate")).getTime();
var age = (todayDate - birthDate) / (1000 * 60 * 60 * 24 * 365)
return age;
}
答案 2 :(得分:0)
年龄是current_year-yyyy。
如果mm> current_month,则为-1 或mm == current_month和dd> current_day。