这是一个直截了当的问题,但我找不到任何合适的解决方案。给定一个日期数组,即
['2015-01-01', '2015-04-20', ...]
有没有办法检查数组中的一项是不是今天之后的下一个有效日期?
我正在使用moment.js。
发布于 2015-04-21 17:53:53
…有没有办法检查数组中的一项是不是今天之后的下一个有效日期?
您的描述对我来说并不是很清楚,但听起来您似乎是在尝试以编程方式确定日期数组是否包含明天的日期(即“今天之后的下一个有效日期”)。在这种情况下,请继续阅读:
首先,使用moment.js以与数组中的字符串相同的格式获取明天的日期:
var tomorrow = moment().add(1, 'days').format('YYYY-MM-DD');现在,您只需遍历数组,并使用==或===将每个值与tomorrow进行比较(在本例中无关紧要):
dates.forEach(function(date) {
if (date == tomorrow) {
// Bingo!
}
});如果只想检查数组中是否有日期是明天的日期,请使用Array#some
var containsTomorrow = dates.some(function(date) {
return date == tomorrow;
});发布于 2015-04-21 17:54:54
这实际上不需要使用momentjs就可以解决。
var todaysDate = new Date();
var min;
var index;
var array = ['2015-01-01', '2015-04-20', ...];
for (var i = 0; i < array.length; i++) {
var inputDate = new Date(array[i]);
var ts = inputDate - todaysDate;
if (!min || (ts < min && ts > 0) ) {
min = ts;
index = i;
}
}
// index will contain the index of the nearest next datehttps://stackoverflow.com/questions/29768582
复制相似问题