0
假设有一个年龄变量和另一个年龄范围的变量。 我已经编写了此脚本来计算搜索之间的日期,但它并不总是计算正确的开始/结束日期。JavaScript:创建基于年龄的日期范围
- 如果我是30岁及范围0使用,它工作正常 (与30岁以下的人)。
- 如果我使用31岁和范围1,它可以正常工作(有人 30岁)。
- 如果我使用30岁和范围1,它正常工作 (有30岁的人)。
- 如果我使用30岁和范围5,它正常工作 (有30岁的人)。
- 如果我使用年龄29和范围1,它不能正常工作 (不是30岁的人)。
所以它看起来有一个错误,我没有找到结束日期? 这里是我的脚本:
if (ageRange && (ageRange < 0 || ageRange > 20)) {
ageRange = 10;
}
if (age && age >= 18 && age <= 100) {
var now = new Date();
var now2 = new Date();
var startDate = new Date(now.setFullYear(now.getFullYear() - (age - ageRange)));
startDate.setHours(23);
startDate.setMinutes(59);
startDate.setSeconds(59);
var endDate = new Date(now2.setFullYear(now2.getFullYear() - (age + ageRange)));
endDate.setHours(0);
endDate.setMinutes(0);
endDate.setSeconds(0);
var findBirthObject = { $lte: startDate, $gte: endDate };
if (ageRange == 0) {
startDate = new Date(startDate.valueOf() + 1000);
startDate.setFullYear(startDate.getFullYear() - 1);
findBirthObject = { $gte: startDate, $lte: endDate };
}
}
与'0'或'1'比较时总是使用“===”。检索生日的标记在哪里? – DevlshOne