JS 获取每月有几周(每周五到周四算作一周)

摘要:
:);}} returnfmt;}allWeeks函数获取指定月份每周的实际日期//当前月份的每个星期都是functionallWeeks{letweek_array=[];lettoday=newDate;letyear=today.getFullYear();letmonth=today.getMonth();let=0;letstart=newDate;//月份的第一天是letend=newDate,//月份的最后一天是letstart_day=start.getDay();//月份第一天是星期控制台的日期。log;//月份开关的开始日期{情况0:i=0-1;中断;情况1:i=0-2;中断;情形2:i=0-3;中断;状况3:i=0-4;中断:情形4:i=0-5;中断,情形5:i=1;中断;事例6:i=0;中断;}而{week_array.pushi+=7;}安慰日志returnweek_数组;}例如,所有星期;结果:第1周:[“2018-07-27”,“2018-08-02”]第2周:[”2018-08-03“,”2018-08-09“]第3周:[”2018-08-10“,”2018-08-16“]第4周:“2018-08-17”,“2018-08-23”]第5周:“”2018-08-24“,”201-08-30“]所有周;结果:第1周:[“2018-06-29”,“2018-07-05”]第2周:[”2018-07-06“,”2018-07-12“]第3周:[”2018-07-13“,”2018-07-19“]第4周:[

原文地址:https://caochangkui.github.io/data-week/

将每周五至周四算作一周,计算每月有几周,并获取到每周的起始时间。

日期格式化

Date.prototype.format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }
    return fmt;
}

函数 allWeeks 得到指定月份的各周真实日期

// 本月的每一周(从上周五到本周四为一周)
function allWeeks(now_month) {
    let week_array = [];
    let today = new Date(Date.parse(now_month));
    let year = today.getFullYear();
    let month = today.getMonth();
    let i = 0;

    let start = new Date(year, month, 1); // 得到当月第一天
    let end = new Date(year, month+1, 0); // 得到当月最后一天
    let start_day = start.getDay(); // 当月第一天是周几
    console.log(start.format("yyyy-MM-dd"), end.format("yyyy-MM-dd")); // 每月的起始日期
    switch(start_day)
    {
        case 0: i = 0 - 1; break;
        case 1: i = 0 - 2; break;
        case 2: i = 0 - 3; break;
        case 3: i = 0 - 4; break;
        case 4: i = 0 - 5; break;
        case 5: i = 1; break;
        case 6: i = 0; break;
    }

    while ( new Date(year, month, i + 6) <= end) {

        week_array.push([  new Date(year, month, i).format("yyyy-MM-dd"),
                           new Date(year, month, i + 6).format("yyyy-MM-dd")
                        ]
                    )
        i += 7;
    }

    console.log(week_array);
    return week_array;
}

例如

allweeks('2018-08');

结果:

第一周:["2018-07-27", "2018-08-02"]
第二周:["2018-08-03", "2018-08-09"]
第三周:["2018-08-10", "2018-08-16"]
第四周:["2018-08-17", "2018-08-23"]
第五周:["2018-08-24", "2018-08-30"]

allweeks('2018-07');

结果:

第一周:["2018-06-29", "2018-07-05"]
第二周:["2018-07-06", "2018-07-12"]
第三周:["2018-07-13", "2018-07-19"]
第四周:["2018-07-20", "2018-07-26"]

免责声明:文章转载自《JS 获取每月有几周(每周五到周四算作一周)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[精品]CAD批量处理工具c++ 火柴棒等式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

boost的下载和安装(windows版)

1 Introduction boost是一个准C++标准库,相当于STL的延续和扩展。它的设计理念类似于STL,它使用泛型来最大化重用。对于2boost的下载和安装,我们可以在官方boost网站上下载最新的boost版本。因为boost库可以像标准库一样在多个平台上运行,所以它只以源代码的形式正式提供。这是因为boost windows的安装版本不仅与处理...

Python-正则

,三:量词*重复0次或多次{0,}+重复一次或多次{1,}?重复0或1次{1,0}{n}重复n次{n}{n,}重复n次,或更多次{n,m}将n次重复到m次Escape:如果字符串中有特殊字符要匹配,请在常规字符和字符串前面添加r。如果特殊字符在字符组中,则它们是匹配的特殊字符,但为了记忆,匹配时会转义所有特殊字符。...

使用Docker构建redis集群

将六个独立的Redis节点关联到主机上的Redis集群中。Redis部落。rb是Redis官方提供的一个ruby脚本,用于构建Redis集群并修改Redis conf将其移动到上部路径/usr/docker_root/redis_Cluster/。受保护模式norequipassa1s2W3l4%Greunbind无法连接到凹坑以构建Redis基本映像。9....

uniapp打包h5 出现'连接服务器超时,点击屏幕重试'的页面

跟踪以首先找出原因全局组件AsyncErrorNew在中注册。js文件可以自定义。我很快就过去了,所以我添加了一个空白页面,然后在清单中介绍了组件。json文件...

「Docker」关于 Docker volume 挂载时文件或文件夹不存在的问题

背景:Dockervolume允许我们在启动Docker容器时动态装载一些文件以覆盖图像中的原始文件。然而,当我们将主机上不存在的文件夹或文件装载到容器时会发生什么?由于文件装载仅覆盖单个文件,而不会影响容器中同一文件夹中的其他文件,因此通常用于装载配置文件,以在运行时动态修改默认配置。如果您尝试提前在主机/文件夹路径/A中放置一些内容,您会发现在容器启动后...

Linux shell脚本,按顺序批量启动多个jar包,批量启动spring cloud的jar包

Linux shell脚本,按顺序批量启动多个jar包,批量启动spring cloud jar包1.手动逐个启动:nohupjavajarurekaserver。jar˃../logs/eurekaserver.log2˃&1&nohupjavajarconfigserver。jar˃../logs/configserver.log2˃&a...