Javascript 搜索日期数组始终返回-1
我已经为去年创建了一个日期数组,我需要在给定日期的数组中找到索引,但它返回-1 然而,如果我硬编码日期,这是不好的,因为它不是动态的,它的工作和输出331,这是我所期望的 我该怎么做才能让它工作Javascript 搜索日期数组始终返回-1,javascript,date,Javascript,Date,我已经为去年创建了一个日期数组,我需要在给定日期的数组中找到索引,但它返回-1 然而,如果我硬编码日期,这是不好的,因为它不是动态的,它的工作和输出331,这是我所期望的 我该怎么做才能让它工作 // Returns an array of dates between the two dates var getDates = function(startDate, endDate) { var dates = [], currentDate = startDate, addD
// Returns an array of dates between the two dates
var getDates = function(startDate, endDate) {
var dates = [],
currentDate = startDate,
addDays = function(days) {
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
};
while (currentDate <= endDate) {
dates.push(currentDate);
currentDate = addDays.call(currentDate, 1);
}
return dates;
};
var today = new Date(),
last_year = new Date();
last_year.setMonth(last_year.getMonth() - 12);
last_year.setDate(last_year.getDate() + 1);
var dates = getDates(last_year, today);
var d = new Date(2017, 10, 31);
var test = dates.map(Number).indexOf(+d);
console.log(test); // dump -1
因为您没有将小时、分钟设置为
0
,所以new Date()
将使用您需要清除的当前时间戳
last_year.setMonth(last_year.getMonth() - 12);
last_year.setDate(last_year.getDate() + 1);
last_year.setHours(0,0,0,0); //this line is added
演示
//返回两个日期之间的日期数组
var getDates=函数(开始日期、结束日期){
var日期=[],
当前日期=开始日期,
addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
};
而(currentDate因为您没有将小时、分钟设置为0
,所以new Date()
将使用您需要清除的当前时间戳
last_year.setMonth(last_year.getMonth() - 12);
last_year.setDate(last_year.getDate() + 1);
last_year.setHours(0,0,0,0); //this line is added
演示
//返回两个日期之间的日期数组
var getDates=函数(开始日期、结束日期){
var日期=[],
当前日期=开始日期,
addDays=函数(天){
var date=新日期(this.valueOf());
date.setDate(date.getDate()+天);
返回日期;
};
虽然(currentDate请显示不工作的代码。它在哪里返回-1或331?为什么要从代码中删除该代码段。当我修复它时,它是一个错误。请显示不工作的代码。它在哪里返回-1或331?为什么要从代码中删除该代码段。当我修复它时,它是一个错误。感谢快速响应。我将尽快接受。真不敢相信一句话就搞定了,谢谢你的快速反应。我会尽快接受。真不敢相信一句话就搞定了