複数の日付範囲を持つ配列があります。日付が範囲内にあるかどうかを確認する必要があります(重複する日付の確認は現在範囲外です)。
私はこれまでこのコードを持っていますが、今日の日付がいずれかの日付範囲内にある場合でも、どういうわけかtrueを返しません。
// An array of objects containing date ranges
var datesArray = [{
"from": "2/12/2016",
"to": "8/12/2016",
"schedule": 1
}, {
"from": "11/10/2017",
"to": "16/10/2017",
"schedule": 2
}, {
"from": "17/10/2017",
"to": "22/10/2017",
"schedule": 3
}];
// Today's date
var d = new Date();
var dd = d.getDate();
var mm = d.getMonth() + 1;
var yyyy = d.getFullYear();
var today = dd + "/" + mm + "/" + yyyy;
console.log("Today: " + today);
// For each calendar date, check if it is within a range.
for (i = 0; i < datesArray.length; i++) {
// Get each from/to ranges
var From = datesArray[i].from.split("/");
var To = datesArray[i].to.split("/");
// Format them as dates : Year, Month (zero-based), Date
var FromDate = new Date(From[2], From[1] - 1, From[0]);
var ToDate = new Date(To[2], To[1] - 1, To[0]);
var schedule = datesArray[i].schedule;
// Set a flag to be used when found
var found = false;
// Compare date
if (today >= FromDate && today <= ToDate) {
found = true;
console.log("Found: " + schedule);
}
}
//At the end of the for loop, if the date wasn't found, return true.
if (!found) {
console.log("Not found");
}
ここで何が欠けていますか?ありがとう。
コードでtoday
は、は文字列d
ですが、はDate()
です。あなたは、次のようなより説明変数名、恩恵を受けるtodayString
とtodayDate
。
「今日は」の記述であれば、あなたがやっているようにも、私は、よく分かりません+1
のgetMonth()
。
datesArray
JavaScriptで決定された場合は、Date()
代わりにそこにオブジェクトを格納できますが、例としてこれを行った可能性があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加