理想情况下,我想要做的是将输入字段附加一个日期选择器,例如,有人选择未来的日期。 [今天是2013年9月8日,在撰写本文时,将获得2013年7月31日的回复。]
我想要的是,无论选择什么日期,使用javascript的输入字段都会将值默认为星期三之前的星期三 - 这是初始选定的日期值。
function getWednesday(date) {
var d = (date.getDay() == 0 ? 6 : date.getDay() - 3);
date.setTime(date.getTime() - (d * 24 * 60 * 60 * 1000));
return date;
}
这只会返回当周的星期三。我对javascript函数getDay的理解只返回代表sun-sat的0-6。自1970年1月1日起,setTime函数需要一个毫秒的字符串并转换为实际的日期,而getTime则完全相反。我不确定我是否采用正确的方法来解决问题。在此先感谢您的任何帮助
答案 0 :(得分:1)
好的,这是我能想到的最聪明的方式:
function prevWed(inDate){
var adder=(3-inDate.getDay());
var d=new Date(inDate.getFullYear(), inDate.getMonth(), inDate.getDate() + adder - 7);
return d
}
更小:
return new Date(inDate.getFullYear(), inDate.getMonth(), inDate.getDate() + (3-inDate.getDay()) - 7);
这会有用吗?
答案 1 :(得分:0)
您可以调整您的功能以包含此内容:
function getWednesday(date) {
var d = (date.getDay() == 0 ? 6 : date.getDay() - 3);
date.setTime(date.getTime() - (d * 24 * 60 * 60 * 1000));
return new Date(date.getFullYear(), date.getMonth(), date.getDate()-7);
}
alert(getWednesday(new Date()));
我认为这应该有用。
答案 2 :(得分:0)
var date = new Date();
var wednesday = new Date(date.setDate(date.getDate() - ((date.getDay() == 0 ? 7 : date.getDay()) + 4)));
计算今天的天数(5)+从上周减去的天数到星期三。
答案 3 :(得分:0)
var d = date.getDay();
if (d == 0) {
date.setTime((date.getTime() - 604800000) + 86400000 * 3);
return date;
}
else if (d == 1) {
date.setTime((date.getTime() - 604800000) + 86400000 * 2);
return date;
}
else if (d == 2) {
date.setTime((date.getTime() - 604800000) + 86400000 );
return date;
}
else if (d == 4) {
date.setTime((date.getTime() - 604800000) - 86400000 );
return date;
}
else if (d == 5) {
date.setTime((date.getTime() - 604800000) - 86400000 * 2);
return date;
}
else if (d == 6) {
date.setTime((date.getTime() - 604800000) - 86400000 * 3);
return date;
}
else date.setTime(date.getTime() - 604800000);
return date;
这实际上得到的解决方案我想要一点笨重的想法...大声笑
答案 4 :(得分:0)
多数民众赞成应该在任何特定日期和时间之前结婚
var x = new Date('8/1/2013') ;
var wed ;
for(var i=7 ; i > 0 ; i--){
var myday = x.getTime() - (i * 24 * 60 * 60 * 1000) ;
var d = new Date(myday) ;
if(!!~String(d).indexOf('Wed')) wed = d
}
console.log(wed) ;