Javascript日期小于或等于只返回小于
Javascript date less than or equal to returning only less than
我有一个jQuery日期选择器工具,返回最大和最小日期。日期用于从数组中筛选出结果。我使用jQuery.grep根据日期进行筛选。由于某种原因,虽然>=会起作用,但<=仅返回小于。
// Function to filter based on date minimum
function filterListGreaterThan(filter, list, min){
var result = jQuery.grep(list, function (obj){
return new Date(obj[filter]) >= min;
});
return result;
};
function filterListLessThan(filter, list, max){
var result = jQuery.grep(list, function (obj){
return new Date(obj[filter]) <= max;
});
return result;
};
所以,如果我把它放在2013年11月1日至11月5日,它只会在11月1至11月4日返回……我不知道为什么。
编辑:Mac给了我正确的答案。比较日期时,jQuery将时间设置为午夜。所以,即使我让它在正确的日子搜索,它也没有搜索到午夜。这是修正后的功能:
// Function to filter based on date maximum
function filterListLessThan(filter, list, max){
var result = jQuery.grep(list, function (obj){
//add time to date because jQuery sets the time at 00:00:00
max.setHours(23,59,59);
return new Date(obj[filter]) <= max;
})
return result;
};
问题可能是由于最长日期的时间分量设置为00:00 AM-数组中发生在最长日期上的所有项目都可能被筛选掉,因为它们发生在00:00 AM之后的某个时间。
要解决此问题,最好的方法是将最大日期更改为晚上11:59:59的时间分量,或者将最大日期设置为第二天的00:00,并使用小于(而不是小于或等于)。
我不完全确定我是否理解你想做什么,所以如果这不是你需要的,我很抱歉,但如果你只是想过滤一系列日期,我会尝试下面的方法。您需要确保将Date对象与另一个Date对象进行比较,并且数组中的值已格式化,以便生成有效的Date对象。
我不确定jQuery函数是如何工作的,但使用普通的javascript,我会做这样的事情来过滤日期:
var list = ['2013,10,01','2013,10,02','2013,10,03','2013,10,04','2013,10,05',
'2013,10,06'];
function filterListGreaterThan(list, min_date){
var filtered_dates = [];
for(var i=0; i < list.length; i++){
var parts = list[i].split(','),
test_date = new Date(parts[0],parts[1],parts[2]);
if(test_date >= min_date){
filtered_dates.push(test_date);
}
}
return filtered_dates;
}
var min_date = new Date('2013','10','04'),
dates = filterListGreaterThan2(list, min_date);
console.log(dates);
//RETURNS:
//Mon Nov 04 2013 00:00:00 GMT+0000 (GMT Standard Time)
//Tue Nov 05 2013 00:00:00 GMT+0000 (GMT Standard Time)
//Wed Nov 06 2013 00:00:00 GMT+0000 (GMT Standard Time)
//
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- Javascript日期小于或等于只返回小于
- Angular js创建一个自定义过滤器,返回小于动态数字的所有项
- 大于在小于 100 的数字上返回错误值
- 鼠标滚轮事件总是返回小于0(向下)在firefox?JQuery