【问题标题】:How to get Saturdays and Sundays (dates) of a month + JAVASCRIPT如何获取一个月的周六和周日(日期)+ JAVASCRIPT
【发布时间】:2014-01-20 19:52:59
【问题描述】:

如果给定日期(例如-“2014-01-07”),我想访问该特定月份(2014 年 1 月)并获取 星期六的日期编号该月的星期日

在这种情况下, 4,11,18,25 --星期六 5,12,19,26 -- 星期日

我想使用 java 脚本,因为这是一个前端开发。 帮我解决这个问题..Thnkz

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    试试这个FIDDLE

    var d = new Date();
    var getTot = daysInMonth(d.getMonth(),d.getFullYear()); //Get total days in a month
    var sat = new Array();   //Declaring array for inserting Saturdays
    var sun = new Array();   //Declaring array for inserting Sundays
    
    for(var i=1;i<=getTot;i++){    //looping through days in month
        var newDate = new Date(d.getFullYear(),d.getMonth(),i)
        if(newDate.getDay()==0){   //if Sunday
            sun.push(i);
        }
        if(newDate.getDay()==6){   //if Saturday
            sat.push(i);
        }
    
    }
    console.log(sat);
    console.log(sun);
    
    
    function daysInMonth(month,year) {
        return new Date(year, month, 0).getDate();
    }
    

    satsunArray()你可以得到特定月份的周六和周日

    【讨论】:

    • 您可以使用一个月中的第一个周六或周日查找结果,然后简单地将 7 天添加到下一个周日或周六,从而减少循环的大小并提高效率.. .
    • 请注意,虽然嵌入的代码是前一段时间由hari编辑的,但FIDDLE仍然具有倒退的星期日和星期六数组。
    【解决方案2】:

    使用getDate方法非常简单:

    var my_date = "2014-01-07".split('-')
    var year = parseInt(my_date[0]);
    var month = parseInt(my_date[1])-1;
    
    var saturdays = [];
    var sundays = [];
    
    for (var i = 0; i <= new Date(year, month, 0).getDate(); i++) 
    {    
        var date = new Date(year, month, i);
    
        if (date.getDay() == 6)
        {
           saturdays.push(date);
        } 
        else if (date.getDay() == 0)
        {
            sundays.push(date);    
        }
    };
    
    console.log(sundays, saturdays);
    

    【讨论】:

      【解决方案3】:
      var d = new Date();
      var pred = new Date(d.getFullYear(),d.getMonth()+1,0).getDate();
      
      var nowd;
      var sat_array = "";
      var sun_array = "";
      
      
      for (i=1;i<=pred;i++) {
      
        try {
          console.log(d.getFullYear()+ "-" + (d.getMonth()+1) + "-" + i);
          nowd = new Date(d.getFullYear()+ "-" + (d.getMonth()+1) + "-" + i)
      
          if (nowd.getUTCDay() == 5)
          {
              sat_array = sat_array + "," + i;
          }
      
          if (nowd.getUTCDay() == 6)
          {
              sun_array = sun_array + "," + i;
          }
      
      
        }
        catch(e) {
            return;
        }
      
      }
      
      console.log("SAT list : " +sat_array);
      console.log("SUN list : " +sun_array);
      

      【讨论】:

        【解决方案4】:

        根据您上面的描述 你可以使用 -

        var sat = new Date(input.getFullYear(), input.getMonth(), 6 - input.getDate() + getDay());
        var sun = new Date(input.getFullYear(), input.getMonth(), getDay() + (input.getDate() - 6));
        

        将该代码放入 for 循环并添加 7 直到月份更改。 并减去 7 直到月份的变化。

        javascript 输入日期将为您处理月份和年份。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-29
        相关资源
        最近更新 更多