Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数在FIrefox(Javascript)中返回无效答案_Javascript_Firefox - Fatal编程技术网

函数在FIrefox(Javascript)中返回无效答案

函数在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();

我试图从用户输入中获取用户的年龄,即出生日期。 用户的出生日期格式为(2008年8月18日)(DD-MMM-YYYY)

我在一个函数中提供输入,该函数确定年龄并返回年龄

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将接受它作为日期。