[英]If date between date range
我正在處理兩個日期,例如29/03/2014
和04/04/2014
,並且我有一系列日期,例如01/04/2014
和02/04/2014
,我需要找出幾個(如果該數組中的日期)在日期范圍之間。
最好的方法是什么?
編輯:最終代碼,從ponciste的答案中進行了一些調整
//date1 and date2 are the start/end dates
bhDays = new Array();
$.each(DataBridge.bankHolidays, function(i, v) {
var americanDate = v.split('-');
americanDate = americanDate[1] + '/' + americanDate[0] + '/' + americanDate[2];
date = new Date(americanDate);
if (date1 <= date && date2 >= date) {
bhDays.push(date);
}
});
在這種情況下最好處理Date對象
因此您的代碼應如下所示:
var strDateFrom = "29/03/2014";
var strDateTo = "04/04/2014";
var dateFrom = strDateFrom.split("/");
var dateTo = strDateTo.split("/");
var dates = ["01/04/2014", "02/04/2014"];
var from = new Date(dateFrom[2], dateFrom[1]-1, dateFrom[0]);
var to = new Date(dateTo[2], dateTo[1]-1, dateTo[0]);
dates.forEach(function(date) {
var dateToCheck = new Date(date[2], date[1]-1, date[0]);
if(dateToCheck > from && dateToCheck < to)
});
Date對象將執行您想要的操作-為每個日期構造一個,然后使用常規運算符比較它們。
構造日期對象並使用<||進行比較 >運算符。
我強烈建議為此使用moment.js庫(以及所有其他具有日期/時間的操作)並使用差分功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.