我正在制作一个日期过滤器,该过滤器使用https://www.npmjs.com/package/js-datepicker格式为“ MM / DD / YYYY”的输入字符串,然后尝试将其转换为数字以在有条件的条件下使用该条件,该条件将显示项目在指定日期内掉落的我的函数采用undefined / NaNs,并根据开始或结束日期填写Date.parse(“ 01/01/1970”)或Date.parse(“ 01/01/3000”)。我的问题是,在IE中,我所有的日期都返回NaN,因此该过滤器无法正常工作-在Chrome和Edge中它可以正常工作,但在IE中却没有任何作用(因为一切都在1971年到3000年之间。
我曾尝试以多种方式对数据进行切片和切块,但似乎我什至无法将“ 10”转换为10,而没有得到NaN。
var isd: any = startDate[0].value;
console.log(isd);
console.log(typeof isd);
var parts = isd.split("/");
console.log(parts[0],parts[1],parts[2]);
let year = parts[2];
let month = parts[0]; // 0 is january
let day = parts[1];
console.log(year,month,day);
console.log(typeof year,typeof month,typeof day)
year = parseInt(year);
month = parseInt(month) - 1;
day = parseInt(day);
console.log(year,day);
let year2 = parts[2];
let month2 = parts[0]; // 0 is january
let day2 = parts[1];
year2 = parseFloat(year2);
month2 = parseFloat(month2) - 1;
day2 = parseFloat(day2);
console.log(year2,month2,day2);
let year3 = parts[2];
let month3 = parts[0]; // 0 is january
let day3 = parts[1];
year3 = Number(year3);
month3 = Number(month3) - 1;
day3 = Number(day3);
console.log(year3,month3,day3);
var inputStartDate: any = new Date(year,day);
inputStartDate = inputStartDate.toString();
// console.log(this.startDate,this.endDate,thisStartDate,thisEndDate);
console.log(isd,ied,inputStartDate,inputEndDate);
我希望当我执行Number || parseInt || parseFloat(“ 10”)时可以得到10。但是我只能得到NaN。
我的console.log如下:
10/10/2019
string
10 10 2019
2019 10 10
string string string
NaN NaN NaN (x3 lines)
10/16/2019 Invalid Date NaN
预先感谢