如果用户输入了一个日期(2015-10-10),怎样判断这个日期在当前日期的一个星期之内?
计算指定日期的星期范围
代码再做些优化吧
function getWeekRangeBy(someDateTime) {
var weekFirstDate,weekEndDate;
if (someDateTime.getDay() === 0) {
weekFirstDate=new Date(someDateTime.getTime()-6*24*3600*1000);
weekEndDate=someDateTime;
} else if (someDateTime.getDay() === 1) {
weekFirstDate=someDateTime;
weekEndDate=new Date(someDateTime.getTime()+6*24*3600*1000);
} else if (someDateTime.getDay() === 2) {
weekFirstDate=new Date(someDateTime.getTime()-1*24*3600*1000);
weekEndDate=new Date(someDateTime.getTime()+5*24*3600*1000);
} else if (someDateTime.getDay() === 3) {
weekFirstDate=new Date(someDateTime.getTime()-2*24*3600*1000);
weekEndDate=new Date(someDateTime.getTime()+4*24*3600*1000);
} else if (someDateTime.getDay() === 4) {
weekFirstDate=new Date(someDateTime.getTime()-3*24*3600*1000);
weekEndDate=new Date(someDateTime.getTime()+3*24*3600*1000);
} else if (someDateTime.getDay() === 5) {
weekFirstDate=new Date(someDateTime.getTime()-4*24*3600*1000);
weekEndDate=new Date(someDateTime.getTime()+2*24*3600*1000);
} else if (someDateTime.getDay() === 6) {
weekFirstDate=new Date(someDateTime.getTime()-5*24*3600*1000);
weekEndDate=new Date(someDateTime.getTime()+1*24*3600*1000);
}
return {
weekFirstDate:new Date(clearDateFormater(weekFirstDate)),
weekEndDate:new Date(clearDateFormater(weekEndDate))
}
}
由于说的不是很详细,我的思路如下:
//获取输入时间内容
var inputTime=document.formName.inputName.value;
//然后用这个输入时间去建立一个时间对象
//这里的inputTime格式很重要,会决定是否创建时间成功
var inputTimeObject=new Date(inputTime);
//然后就是获取当下的时间
var nowTimeObject=new Date();
//然后比较输入时间和当前时间的差
//一周的时间以毫秒计算出来
var weekMilliSeconds=72460601000;
//然后比较 inputTimeObject和nowTimeObject的差额是不是在 weekMilliSeconds之内
@yujieyu7 的答案是正确的,我说个不正确的。`
var date="2015-05-06";
var nowDate="2015-05-09";
var _day=nowDate.replace(/-/g,"")1-date.replace(/-/g,"")1;
`
使用date.js很容易判断:
function isSameWeekWithNow(date){
var now = Date.today();
var nowWeek = now.getWeek();
var compareDateWeek = date.getWeek();
return nowWeek == compareDateWeek;
}
效果:http://www.jscssshare.com/#/sample/2TTm4VLO
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
思路很简单,就是比较输入的时间和现在的时间相差的毫秒数,看它和一周的毫秒数的大小