使用简单的JS函数和方法在Javascript中计算年龄
我正在用JS写一个程序来寻找年龄。函数使用简单的JS函数和方法在Javascript中计算年龄,javascript,date,Javascript,Date,我正在用JS写一个程序来寻找年龄。函数calculateAge()的参数为日、月、年(人的出生日期),输出应为人的年龄。 我尝试了以下代码 let calculateAge = function(day, month, year){ var myBirthDate = new Date(calculateAge), myBirthYear = myBirthDate.getFullYear(), myBirthMonth = myBirthDate.get
calculateAge()
的参数为日、月、年(人的出生日期),输出应为人的年龄。
我尝试了以下代码
let calculateAge = function(day, month, year){
var myBirthDate = new Date(calculateAge),
myBirthYear = myBirthDate.getFullYear(),
myBirthMonth = myBirthDate.getMonth(),
myBirthDay = myBirthDate.getDay()
let currentDate = new Date(),
currentYear = currentDate.getFullYear(),
currentMonth = currentDate.getMonth(),
currentDay= currentDate.getDay()
var age = currentYear - myBirthYear
var ageMonth = currentMonth - myBirthMonth
var ageDay = currentDay-myBirthDay
if (ageMonth<0 || (ageMonth == 0 && ageDay<0)){
age = parseInt(age)-1
}
}; alert (calculateAge(24,04,1993))
let calculateAge=函数(日、月、年){
var myBirthDate=新日期(calculateAge),
myBirthYear=myBirthDate.getFullYear(),
myBirthMonth=myBirthDate.getMonth(),
myBirthDay=myBirthDate.getDay()
设currentDate=新日期(),
currentYear=currentDate.getFullYear(),
currentMonth=currentDate.getMonth(),
currentDay=currentDate.getDay()
变量年龄=当前年份-我的出生年份
var ageMonth=当前月份-我的出生月份
var ageDay=当前日期我的生日
首先,欢迎使用堆栈溢出
您已接近计算年龄。您没有将函数参数传递到Date
构造函数中,以及其他一些小问题,例如尝试对已为整数的值使用parseInt
:
let calculateAge=函数(日、月、年){
var myBirthDate=新日期(年、月-1、日),
myBirthYear=myBirthDate.getFullYear(),
myBirthMonth=myBirthDate.getMonth(),
myBirthDay=myBirthDate.getDay();
var currentDate=新日期(),
currentYear=currentDate.getFullYear(),
currentMonth=currentDate.getMonth(),
currentDay=currentDate.getDay();
var ageMonth=当前月份-我的出生月份;
var ageDay=当前日期-我的生日;
变量年龄=当前年份-我的出生年份;
if(ageMonth<0 | |(ageMonth==0&&ageDay<0)){
年龄=年龄-1;
}
回归年龄;
};
首先,欢迎来到堆栈溢出
您已接近计算年龄。您没有将函数参数传递到Date
构造函数中,以及其他一些小问题,例如尝试对已为整数的值使用parseInt
:
let calculateAge=函数(日、月、年){
var myBirthDate=新日期(年、月-1、日),
myBirthYear=myBirthDate.getFullYear(),
myBirthMonth=myBirthDate.getMonth(),
myBirthDay=myBirthDate.getDay();
var currentDate=新日期(),
currentYear=currentDate.getFullYear(),
currentMonth=currentDate.getMonth(),
currentDay=currentDate.getDay();
var ageMonth=当前月份-我的出生月份;
var ageDay=当前日期-我的生日;
变量年龄=当前年份-我的出生年份;
if(ageMonth<0 | |(ageMonth==0&&ageDay<0)){
年龄=年龄-1;
}
回归年龄;
};
使用实验方案:
const calculateAge=(日、月、年)=>{
const birth=Temporal.DateTime.from({day,month,year});
const today=Temporal.DateTime.from(Temporal.now.date());
今天返回。差异(生日,{最大单位:'年'})。年;
}
计算(24,4,1993);/27
使用实验方案:
const calculateAge=(日、月、年)=>{
const birth=Temporal.DateTime.from({day,month,year});
const today=Temporal.DateTime.from(Temporal.now.date());
今天返回。差异(生日,{最大单位:'年'})。年;
}
计算(24,4,1993);/27
欢迎来到SO,希望您有一个良好的学习曲线。您认为这里的代码流是什么?这回答了您的问题吗?这回答了您的问题吗?据我所知,参数只是数字,我希望JS将参数视为日期。由于默认的日期格式是yyyy mm dd,JS采用函数参数ers和其他一些数字一样。因为,我希望用户将他的DOB作为dd,mm,yyyy,日期格式应该更改。@shryas,我认为在新的日期()中我应该传递参数,即日、月、年,而不是函数本身。是这样吗?欢迎来到SO,希望你有一个良好的学习曲线。你认为这里的代码流是什么?这回答了你的问题吗?这回答了你的问题吗?在我的理解中,参数只是数字,我希望JS来处理参数rs作为日期。由于默认的日期格式是yyyy mm dd,JS采用的函数参数与其他一些数字一样。因为,我希望用户将其DOB作为dd,mm,yyyy,所以应该更改日期格式。@shryas,我认为在新的日期()中我应该传递参数,即日、月、年,而不是函数本身。是这样吗?你好,罗伯特,谢谢你的回答和更正代码。还有一个问题-是否有必要在Java脚本中使用YY-mm-dd格式的日期?因为在印度,约定是dd,mm,yyyy。那么有什么方法可以更改格式吗在印度惯例中,您需要将参数以年、月、日(按该顺序)的形式传递给Date
构造函数。如果要格式化日期,有几种方法:由于ECMAScript月份是以零为基础的,OP可能需要新日期(年、月-1、日)
。添加到同一代码中,而不是在函数调用中传递值,如果我要求用户给出他/她的生日,然后在函数调用中传递提示值,则输出为NaN。为什么输出不是数字?既然我要求用户给出他的生日,那么他无论如何都会给出日期、月份和年份。@shreyograjopadhye您需要确保使用数字而不是字符串调用calculateAge
。确保当您收到用户的值时,将任何字符串转换为数字。你好,Robert,感谢您的回答和更正代码。还有一个问题-是否需要在Java脚本中使用yyyy-mm-dd格式的日期?因为她在印度,约定是dd,mm,yyyy。那么有什么方法可以更改印度约定的格式吗?您需要将参数作为年、月、日(按该顺序)传递给Date
构造函数