Javascript 如何从数组中返回今天、今天和明天之前的日期数
我有一个满是日期的数组。我想从这个数组中获得3个单独的信息Javascript 如何从数组中返回今天、今天和明天之前的日期数,javascript,arrays,momentjs,Javascript,Arrays,Momentjs,我有一个满是日期的数组。我想从这个数组中获得3个单独的信息 今天之前的日期数。更具体的日期是在现在之前,所以我需要包括小时、分钟和秒 从现在到当前日期结束之间的日期数 明天日期的日期数 来自数组的日期示例: "02/11/2019 11:22:28", "05/14/2019 12:17:49", "06/06/2019 09:00:00", "05/02/2019 11:05:30" 我相信moment.js在这方面会有所帮助,但我无法让它工作。我认为您不需要导入js框架来实现这一点 您可以
"02/11/2019 11:22:28",
"05/14/2019 12:17:49",
"06/06/2019 09:00:00",
"05/02/2019 11:05:30"
我相信moment.js在这方面会有所帮助,但我无法让它工作。我认为您不需要导入js框架来实现这一点 您可以在纯JavaScript中比较日期
const arrayOfDates = ["02/11/2019 11:22:28", "02/11/2020 11:22:28",
"04/03/2019 11:33:54"];
const TODAY = new Date();
const END_OF_TODAY = new Date(TODAY.getFullYear(), TODAY.getMonth(), TODAY.getDay(), 24, 59, 59);
const END_OF_TOMORROW = new Date(TODAY.getFullYear(), TODAY.getMonth(), TODAY.getDay() + 1, 24, 59, 59);
let datesBeforeToday = [];
let datesBetweenNowAndEndOfDate = [];
let datesWithTomorrowsDate = [];
for (var i=0; i<arrayOfDates.length; i++)
{
var dateInArray = new Date(arrayOfDates[i]);
// Before today
if (TODAY > dateInArray)
{
datesBeforeToday.push(dateInArray);
}
// between now - end of today
else if (END_OF_TODAY >= dateInArray)
{
datesBetweenNowAndEndOfDate.push(dateInArray);
}
// between end of today - end of tomorrow
else if (END_OF_TOMORROW >= dateInArray)
{
datesWithTomorrowsDate.push(dateInArray);
}
}
// 1) Number of dates before 'now'
console.log(datesBeforeToday.length);
// 2) Number of dates between 'now' and the end of the current date
console.log(datesBetweenNowAndEndOfDate.length);
// 3) Number of dates with tomorrow date
console.log(datesWithTomorrowsDate.length);
const arrayOfDates=[“2019年11月2日11:22:28”,“2020年11月2日11:22:28”,
"04/03/2019 11:33:54"];
const TODAY=新日期();
const END_OF_TODAY=新日期(TODAY.getFullYear()、TODAY.getMonth()、TODAY.getDay()、24、59、59);
const END_OF_tomory=新日期(TODAY.getFullYear(),TODAY.getMonth(),TODAY.getDay()+1,24,59,59);
让DatesBefortoday=[];
让DatesBetween Now和EndofDate=[];
让datesWithTomorrowsDate=[];
对于(var i=0;i dateInArray)
{
DatesBefortoday.push(dateInArray);
}
//从现在到今天结束
否则如果(今天结束>=dateInArray)
{
DatesBetween Now和EndofDate.push(dateInArray);
}
//从今天结束到明天结束
否则如果(明天结束>=dateInArray)
{
datesWithTomorrowsDate.push(dateInArray);
}
}
//1)“现在”之前的日期数
日志(datesBeforeToday.length);
//2)“现在”和当前日期结束之间的日期数
日志(DatesBetween Now和EndofDate.length);
//3)明天日期的日期数
日志(datesWithTomorrowsDate.length);
我认为您不需要导入JS框架来实现这一点
您可以在纯JavaScript中比较日期
const arrayOfDates = ["02/11/2019 11:22:28", "02/11/2020 11:22:28",
"04/03/2019 11:33:54"];
const TODAY = new Date();
const END_OF_TODAY = new Date(TODAY.getFullYear(), TODAY.getMonth(), TODAY.getDay(), 24, 59, 59);
const END_OF_TOMORROW = new Date(TODAY.getFullYear(), TODAY.getMonth(), TODAY.getDay() + 1, 24, 59, 59);
let datesBeforeToday = [];
let datesBetweenNowAndEndOfDate = [];
let datesWithTomorrowsDate = [];
for (var i=0; i<arrayOfDates.length; i++)
{
var dateInArray = new Date(arrayOfDates[i]);
// Before today
if (TODAY > dateInArray)
{
datesBeforeToday.push(dateInArray);
}
// between now - end of today
else if (END_OF_TODAY >= dateInArray)
{
datesBetweenNowAndEndOfDate.push(dateInArray);
}
// between end of today - end of tomorrow
else if (END_OF_TOMORROW >= dateInArray)
{
datesWithTomorrowsDate.push(dateInArray);
}
}
// 1) Number of dates before 'now'
console.log(datesBeforeToday.length);
// 2) Number of dates between 'now' and the end of the current date
console.log(datesBetweenNowAndEndOfDate.length);
// 3) Number of dates with tomorrow date
console.log(datesWithTomorrowsDate.length);
const arrayOfDates=[“2019年11月2日11:22:28”,“2020年11月2日11:22:28”,
"04/03/2019 11:33:54"];
const TODAY=新日期();
const END_OF_TODAY=新日期(TODAY.getFullYear()、TODAY.getMonth()、TODAY.getDay()、24、59、59);
const END_OF_tomory=新日期(TODAY.getFullYear(),TODAY.getMonth(),TODAY.getDay()+1,24,59,59);
让DatesBefortoday=[];
让DatesBetween Now和EndofDate=[];
让datesWithTomorrowsDate=[];
对于(var i=0;i dateInArray)
{
DatesBefortoday.push(dateInArray);
}
//从现在到今天结束
否则如果(今天结束>=dateInArray)
{
DatesBetween Now和EndofDate.push(dateInArray);
}
//从今天结束到明天结束
否则如果(明天结束>=dateInArray)
{
datesWithTomorrowsDate.push(dateInArray);
}
}
//1)“现在”之前的日期数
日志(datesBeforeToday.length);
//2)“现在”和当前日期结束之间的日期数
日志(DatesBetween Now和EndofDate.length);
//3)明天日期的日期数
日志(datesWithTomorrowsDate.length);
这是一种不使用moment.js的方法:
var日期=[
"11/02/2018 11:22:28",
"02/02/2019 11:22:28",
"04/04/2019 11:22:28",
"10/03/2019 11:22:28",
"11/02/2019 11:22:28"
];
var res={之前:0,明天:0,之后:0}
var tomorrow00=新日期(新日期().getTime()+24*60*60*1000);
明天00。设定时间(0,0,0,0);
var tomorrow24=新日期(new Date().getTime()+48*60*60*1000);
明天24.设定小时数(0,0,0,0);
tomorrow24.setTime(tomorrow24.getTime()-1)
日期。forEach((日期)=>{
var当前=新日期(日期);
如果((当前>=tomorrow00)和&(当前日期.now())
res.after++
})
console.log(res);
这是一种不使用moment.js的方法:
var日期=[
"11/02/2018 11:22:28",
"02/02/2019 11:22:28",
"04/04/2019 11:22:28",
"10/03/2019 11:22:28",
"11/02/2019 11:22:28"
];
var res={之前:0,明天:0,之后:0}
var tomorrow00=新日期(新日期().getTime()+24*60*60*1000);
明天00。设定时间(0,0,0,0);
var tomorrow24=新日期(new Date().getTime()+48*60*60*1000);
明天24.设定小时数(0,0,0,0);
tomorrow24.setTime(tomorrow24.getTime()-1)
日期。forEach((日期)=>{
var当前=新日期(日期);
如果((当前>=tomorrow00)和&(当前日期.now())
res.after++
})
console.log(res);
您尝试过什么?发布该代码以及其中的错误/问题。它是字符串数组吗?我尝试使用与此处相同的代码:数组看起来也是这样:1:“02/11/2019 11:22:28”2:“05/14/2019 12:17:49”3:“06/06/2019 09:00:00”4:“05/02/2019 11:05:30”您尝试过什么?发布该代码以及其中的错误/问题。它是字符串数组吗?我尝试使用与此处相同的代码:数组看起来也是这样:1:“02/11/2019 11:22:28”2:“05/14/2019 12:17:49”3:“06/06/2019 09:00:00”4:“05/02/2019 11:05:30”你是对的,它工作得非常好!非常感谢你的帮助!你是对的,它工作得非常好!非常感谢你的帮助!谢谢,它工作得很好。是的,没有必要使用矩。js谢谢你指出这一点!很高兴它工作得很好。它对你很有用,请接受/投票。谢谢。谢谢,它工作得很好。是的,有无需使用moment.js谢谢你指出这一点!很高兴它起了作用。它对你很有用,请接受/upvote。谢谢。