Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery获取没有星期天的所有日期?_Javascript_Jquery_Jquery Ui Datepicker - Fatal编程技术网

Javascript 如何使用jQuery获取没有星期天的所有日期?

Javascript 如何使用jQuery获取没有星期天的所有日期?,javascript,jquery,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui Datepicker,我想把这个月的所有日期都取出来。以类似于{2019-9-17}的格式,但我不想在那天包括周日。假设我一个月有30天,假设我们有4个星期天,我只想打印除星期天以外的所有日期 PS:我正在使用datepicker,在jQuery datepicker的帮助下通过月份和年份 onClose: function() { var iMonth = $("#ui-datepicker-div .ui-datepicker-month :selected").val(); var iY

我想把这个月的所有日期都取出来。以类似于{2019-9-17}的格式,但我不想在那天包括周日。假设我一个月有30天,假设我们有4个星期天,我只想打印除星期天以外的所有日期

PS:我正在使用datepicker,在jQuery datepicker的帮助下通过月份和年份

  onClose: function() {
     var iMonth = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
     var iYear = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
     $(this).datepicker('setDate', new Date(iYear, iMonth, 1));
     var my_month=(parseInt(iMonth) + 1);
     console.log('datepicker month='+my_month);

      $('.test').empty();  
      var date = new Date();
      var month = date.getMonth();
      var current_date = date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate();
      //console.log(current_date);
      date.setDate(1);
      var all_days = [];
      var week = [];

      while (date.getMonth() == month) {
          // Getting all days from here and storing in array named as all)days();
          var d = date.getFullYear() + '-' + my_month.toString().padStart(2, '') + '-' + date.getDate().toString().padStart(2, '0');
          all_days.push(d);

          date.setDate(date.getDate() + 1);

          //$('.test').append(all_days);
      }
console.log(all_days);
$(文档).ready(函数(){
$('#txtDate')。日期选择器({
变化月:对,
变化年:是的,
日期格式:“MM yy”,
minDate:0,
onClose:function(){
var iMonth=$(“#ui datepicker div.ui datepicker month:selected”).val();
var iYear=$(“#ui datepicker div.ui datepicker year:selected”).val();
$(this.datepicker('setDate',新日期(iYear,iMonth,1));
var my_month=(parseInt(iMonth)+1);
log('datepicker month='+我的月份);
$('.test').empty();
变量日期=新日期();
var month=date.getMonth();
var current_date=date.getFullYear()+“-”+(date.getMonth()+1)+“-”+date.getDate();
//console.log(当前_日期);
日期。设定日期(1);
var all_天=[];
风险值周=[];
while(date.getMonth()==月){
var d=date.getFullYear()+'-'+my_month.toString().padStart(2',)+'-'+date.getDate().toString().padStart(2,'0');
所有天。推(d);
date.setDate(date.getDate()+1);
$('.test')。追加(所有天);
}
控制台日志(所有天);
},
beforeShow:function(){
如果((selDate=$(this.val()).length>0)
{
iYear=selDate.substring(selDate.length-4,selDate.length);
iMonth=jQuery.inArray(selDate.substring(0,selDate.length-5),$(this.datepicker('option','monthNames');
$(this.datepicker('option','defaultDate',新日期(iYear,iMonth,1));
$(this.datepicker('setDate',新日期(iYear,iMonth,1));
}
},
});
});

身体
{
字体系列:Arial;
字号:10pt;
填充:15px;
}
.ui日期选择器日历{
显示:无;
}
对
选择日期:

您只需在检查
date.getDay()
是否为
!=0

while (date.getMonth() == month) {
//Getting all days from here and storing in array named as all)days();
    if (date.getDay() === 0){
        continue;
    }
    var d = date.getFullYear() + '-' + my_month.toString().padStart(2, '') + '-' + date.getDate().toString().padStart(2, '0');
    all_days.push(d);


    date.setDate(date.getDate() + 1);

    //$('.test').append(all_days);
}
我喜欢这个容易理解的函数,所以我扩展了它

/**
* 
*@param{int}月数,以0为基础
*@param{int}需要说明闰年的年份,不是以零为基础的
*@param{Array}排除星期天的天数是0,星期一是1,依此类推。
*@返回带有日期对象的{Date[]}列表
*/
函数getDaysInMonthWithExclude(月、年、不包括工作日){
var date=新日期(date.UTC(年、月、1));
风险值天数=[];
while(date.getMonth()==月){
if(不包括WeekDays.indexOf(date.getDay())=-1){
推送(新日期(日期));
}
date.setDate(date.getDate()+1);
}
返程天数;
}

log(getDaysInMonthWithExclude(2019年8月[0])
如果(date.getDay()==0)继续出现错误,无法读取的属性“getDay”undefined@user9233192不要使用
d.getDay()
而是使用
date.getDay()
@Andrei Suvorkov是正确的。我更新了我的答案以反映他的观察结果。从0到11开始的月份数组,每当我调用9月份时,它都会给我第8个值,我想,如果我通过值9,那么它会显示Septemberwhy不添加
月份--就在函数中的
var date
之前,但需要小心