![](/img/trans.png)
[英]Javascript Date issues returning 1 day less than set date - timezone
[英]Javascript date less than or equal to returning only less than
我有一個jQuery datepicker工具,可以返回最大和最小日期。 日期是為了從數組中篩選出結果。 我使用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日至2013年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 PM的時間分量,或者將最大日期設置為第二天的00:00 AM,並使用小於號(而不是小於或等於)。
不能完全確定我了解您要嘗試執行的操作,如果這不是您需要的操作,則表示歉意,但是如果您只想過濾一組日期,則可以嘗試以下操作。 您需要確保將一個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)
//
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.