函数在FIrefox(Javascript)中返回无效答案
我试图从用户输入中获取用户的年龄,即出生日期。 用户的出生日期格式为(2008年8月18日)(DD-MMM-YYYY) 我在一个函数中提供输入,该函数确定年龄并返回年龄函数在FIrefox(Javascript)中返回无效答案,javascript,firefox,Javascript,Firefox,我试图从用户输入中获取用户的年龄,即出生日期。 用户的出生日期格式为(2008年8月18日)(DD-MMM-YYYY) 我在一个函数中提供输入,该函数确定年龄并返回年龄 function getAge(dateString) { var today = new Date(); var birthDate = new Date(dateString); var age = today.getFullYear() - birthDate.getFullYear();
function getAge(dateString) {
var today = new Date();
var birthDate = new Date(dateString);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age--;
}
console.log(age);
return age;
}
函数getAge(日期字符串){
var today=新日期();
var birthDate=新日期(日期字符串);
var age=today.getFullYear()-birthDate.getFullYear();
var m=today.getMonth()-birthDate.getMonth();
如果(m<0 | |(m==0&&today.getDate()
上面的函数在CHrome和Edge中完美地返回了年龄,但在firefox中我无法获取正确的年龄如果出生日期为(2008年8月18日)
Chrome中返回的年龄:12
Edge中返回的年龄:12
Firefox中返回的年龄:4028
请帮我把这个修好 谢谢,,
Afras Khan查看数十个,可能数百个关于日期/时间解析的其他问题中的任何一个。JavaScript的
Date
只解析一种指定的格式(以及另一种未指定但普遍支持的格式)。您的输入不是这两种格式中的任何一种。你必须自己解析它,或者使用一个库来解析它。我刚刚在Firefox中尝试过这一点,得到了NaN
,因为birthDate
值被视为无效日期。请尝试用空格替换连字符。Firefox将接受它作为日期。