首页 > 其他分享 >JS-获取每月有几周,根据年月周获取该周从周一到周日的日期等方法

JS-获取每月有几周,根据年月周获取该周从周一到周日的日期等方法

时间:2022-12-28 16:59:17浏览次数:51  
标签:该周 month 获取 w1 year var new JS ds

//获取每月有几周(注:从第一个周一开始算该月第一周)
function getWeeks(year, month) {
    var d = new Date();
    // 该月第一天
    d.setFullYear(year, month - 1, 1);
    var w1 = d.getDay();
    if (w1 == 0) w1 = 7;
    // 该月天数
    d.setFullYear(year, month, 0);
    var dd = d.getDate();
    // 第一个周一
    let d1;
    if (w1 != 1) d1 = 7 - w1 + 2;
    else d1 = 1;
    let week_count = Math.ceil((dd - d1 + 1) / 7);
    return week_count;
}
//根据年月周获取该周从周一到周日的日期
function getWeekTime(year, month, weekday) {
    var d = new Date();
    // 该月第一天
    d.setFullYear(year, month - 1, 1);
    var w1 = d.getDay();
    if (w1 == 0) w1 = 7;
    // 该月天数
    d.setFullYear(year, month, 0);
    var dd = d.getDate();
    // 第一个周一
    let d1;
    if (w1 != 1) d1 = 7 - w1 + 2;
    else d1 = 1;
    var monday = d1 + (weekday - 1) * 7;
    var sunday = monday + 6;
    var from = year + "-" + month + "-" + monday;
    var to;
    if (sunday <= dd) {
        to = year + "-" + month + "-" + sunday;
    } else {
        d.setFullYear(year, month - 1, sunday);
        let days = d.getDate();
        to = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + days;
    }
    console.log(weekday + " 从" + from + " 到 " + to + "");
}
//获取每月第几周的周一的日期
function getMondayTime(year, month, weekday) {
    var d = new Date();
    // 该月第一天
    d.setFullYear(year, month - 1, 1);
    var w1 = d.getDay();
    if (w1 == 0) w1 = 7;
    // 该月天数
    d.setFullYear(year, month, 0);
    var dd = d.getDate();
    // 第一个周一
    let d1;
    if (w1 != 1) d1 = 7 - w1 + 2;
    else d1 = 1;
    var monday = d1 + (weekday - 1) * 7;
    return monday;
}
//获取周一的日期
function getMonDate() {
    var d = new Date(),
    day = d.getDay(),
    date = d.getDate();
    if (day == 1) return d;
    if (day == 0) d.setDate(date - 6);
    else d.setDate(date - day + 1);
    return d;
}
//获得周期名字
function getDayName(day) {
    var day = parseInt(day);
    if (isNaN(day) || day < 0 || day > 6) return false;
    var weekday = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
    return weekday[day];
}
//获得当前日期在当月第几周
//不包括跟上个月重合的部分
function getMonthWeek(a, b, c) {
    var date = new Date(a, parseInt(b) - 1, c),
    w = date.getDay(),
    d = date.getDate();
    return Math.ceil((d + 6 - w) / 7);
}
//获取当月最后一天日期
function getLastDay(year, month) {
    var new_year = year; //取当前的年份
    var new_month = month++; //取下一个月的第一天,方便计算(最后一天不固定)
    if (month > 12) {
        new_month -= 12; //月份减
        new_year++; //年份增
    }
    var new_date = new Date(new_year, new_month, 1); //取当年当月中的第一天
    return (new Date(new_date.getTime() - 1000 * 60 * 60 * 24)).getDate(); //获取当月最后一天日期
}
//根据当前日期获取该天所在周,若该月1号不是周一,获取该月第一周的周一日期,小于该日期的归为上个月最后一周
//当前日期几月第几周
function showDate() {
    var that = this;
    var d = this.getMonDate();
    var ds = new Date();
    var arr = [];
    for (var i = 0; i < 7; i++) {
        let weekDay = this.getDayName(d.getDay());
        let date = d.getDate() + '日';
        if (weekDay == '周一') {
            let beginTime = ds.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
            that.state.beginTime = beginTime;
        }
        if (weekDay == '周日') {
            let endTime = ds.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
            that.state.endTime = endTime;
        }
        arr.push({
            weekDay: weekDay,
            date: date
        });
        d.setDate(d.getDate() + 1);
    }
    let month = ds.getMonth() + 1;
    let weeks = this.getMonthWeek(ds.getFullYear(), month, ds.getDate()) - 1;
    //每月周一日期
    let oneDate = that.getMondayTime(ds.getFullYear(), month, 1);
    if (ds.getDate() < oneDate) {
        month = ds.getMonth();
        weeks = this.getWeeks(ds.getFullYear(), month);
    }
    console.log('month:', month, 'weeks:', weeks);
    this.setState({
        list: arr,
        yearDate: ds.getFullYear(),
        monthDate: month,
        month: ds.getMonth() + 1,
        monthWeek: '第' + weeks + '周',
        theMonthWeek: '第' + weeks + '周'
    });
}

 原文来源于:https://www.cnblogs.com/guohu/p/11795735.html 

标签:该周,month,获取,w1,year,var,new,JS,ds
From: https://www.cnblogs.com/liuqingxia/p/17010478.html

相关文章

  • JS-获取选中日期是本月的第几周
    functiongetWeekStr(str){//将字符串转为标准时间格式str2=Date.parse(str);letdate=newDate(str2);letmonth=date.get......
  • JS-获取当前时间(年月日)是本月第几周和年的第几周的方法
    获取本月第几周的方法:vargetMonthWeek=function(a,b,c){/***a=d=当前日期*b=6-w=当前周的还有几天过完(不算今天)......
  • Maven打包(war)时候出现jsp不会被打包的问题
    今天通过Maven进行打包web项目,发现在打包后的tar目录下的war包中没有将jsp也一并进行打包原因是maven打包时候的问题,下面就来说解决办法:<build><plugins>......
  • C#:获取时间戳
     ///<summary>///获取时间戳///</summary>///<paramname="isMillisecond">是否需要毫秒</param>///<returns>当前时间戳</returns>publicstaticstringGet......
  • JS-输入框只能输入价格类型的值
    <inputtype=textt_value=""o_value=""onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;elsethis.t_value=this.value;if(this.v......
  • python中resp.json()与json.loads(str)的区别
    resp=resquests.get(url)print(type(resp))#<class'requests.models.Response'>第一行代码使用requests库发送get请求,得到响应数据resp。第二行代码的输......
  • wps js 宏之插入页码
    在写插入wps文档的页码时,原以为简单的事情,随着录制宏变得有些扑朔迷离。为了插入奇偶页不同的页码,我尝试用录制宏的方式,看系统是怎么设置的。结果得到以下代码。/***......
  • JS中的事件、事件冒泡和事件捕获、事件委托
    JavaScript事件模型及事件代理事件模型JavaScript事件使得网页具备互动和交互性,我们应该对其深入了解以便开发工作,在各式各样的浏览器中,JavaScript事件模型主要分为3种:......
  • 01 | JSX 代码是如何“摇身一变”成为 DOM 的?
    JSX的本质是什么JSX是JavaScript的一种语法扩展,它和模板语言很接近,但是它充分具备JavaScript的能力,JSX的本质是React.createElement这个JavaScript调用的语法糖......
  • JS动态加载引入JS文件
    1.调整标签位置可以把<script>标签放到HTML文档的最后面,这样不影响页面加载。 2.动态创建script来加载loadJS('js/index.min.js?V=1.0.0.1',function(){//加载,......