Javascript 日期选择器按日期设置
这是关于Datepicker的前一个问题的后续问题。尝试仅在日历上每隔三天显示一次。弄明白了如何将DOY设置为整数并在日历中使用,但它每年3月都会失败-也不能跨越两年 第二部分,如果我需要禁用一周中的某一天,我如何将其与当前的第三天功能结合起来 这是Javascript 日期选择器按日期设置,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,这是关于Datepicker的前一个问题的后续问题。尝试仅在日历上每隔三天显示一次。弄明白了如何将DOY设置为整数并在日历中使用,但它每年3月都会失败-也不能跨越两年 第二部分,如果我需要禁用一周中的某一天,我如何将其与当前的第三天功能结合起来 这是 函数noWeekEnds(日期){ var dow=date.getDay(); 如果(道琼斯指数>5 | |道琼斯指数固定不可用功能: 功能不可用(日期){ 风险值开始=新日期(2015,0,8); var结束=新日期(2016,0,12);
函数noWeekEnds(日期){
var dow=date.getDay();
如果(道琼斯指数>5 | |道琼斯指数固定不可用功能:
功能不可用(日期){
风险值开始=新日期(2015,0,8);
var结束=新日期(2016,0,12);
var now=日期;
if(nowend)返回[false,“red2”,“available”]
var timeDiff=Math.abs(now.getTime()-start.getTime());
var diffDays=数学单元(timeDiff/(1000*3600*24));
var nwe=noWeekEnds(日期);
var shift=(diffDays%3==0)和&nwe[0];
返回[班次,“红色2”,“可用”]
}
立即返回eEkends(date);
将永远不会工作,因为此函数在第一次返回时结束。如何修复的示例?谢谢,知道为什么三月在第三周轮班,而不是其他月份吗?仍在尝试解决此问题。似乎您的函数有时会“重置”答案中的新版本。现在,从到目前为止,您每三天有一次正确的时间,没有周末:)如果您想启用“外出”天数范围在代码中只更改代码>伪代码> > <代码> >代码>真/ <代码>。也可以考虑使用<代码> MyTATEA/COD>,<代码> Max DATA/CARD> jQuery DePoPCiR的PARAMS。谢谢!看起来太好了!-在三月的时候仍然有移位-不知道为什么?也因为De新年和DOY从365重新设置到1,日期在DEC和Jun之间移动。是因为夏令时:)答案是新版本,现在应该是完美的:)
function noWeekEnds(date) {
var dow = date.getDay();
if(dow>5 || dow<1) return [false,''];
return [true,''];
}
function unavailable(date) {
var now = date;
var start = new Date(now.getFullYear(), 0, 0);
var diff = now - start;
var oneDay = 1000 * 60 * 60 * 24;
var day = Math.floor(diff / oneDay);
var shift = (day%3===0);
return [shift, "red2", "available"];
return noWeekEnds(date);
/*
need this to span across 2 years i.e.: Jan 8 2015 thru Jan 12/2016
also it fails the 3rd week of every March ???
*/
}
$(document).ready(function() {
$("#datepicker").datepicker({
beforeShowDay: unavailable
});
$('#datepicker').attr('readonly',true);
});
function unavailable(date) {
var start = new Date(2015,0,8);
var end = new Date(2016,0,12);
var now = date;
if(now < start || now > end) return [false, "red2", "available"]
var timeDiff = Math.abs(now.getTime() - start.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));
var nwe = noWeekEnds(date);
var shift = (diffDays%3===0) && nwe[0];
return [shift, "red2", "available"]
}