javascript - js如何优雅的获取当前月份有几周?
天蓬老师
天蓬老师 2017-04-11 12:00:50
[JavaScript讨论组]

js已经获取到当前的系统时间是2016.8.5,如何获取八月中有多少个周?

补充:
严格意义上讲是获取跨的周数,比如说8.1是周日,也单独算一周

补充:
最后自己写了一个函数获取周数,我获取的是2016年里面某个月份的周数,如果要获取不同的年份,请传递参数进去

function getWeeks(m){
    var str=new Date('2016-'+m+'-1');
    // 当前年份
    var year=str.getFullYear();
    //  获取月份第一天是周几  周日是0
    var day=str.getDay();
    // 获取当前月份的天数
    var days=new Date(year,m,0).getDate();
    // 要减去开头的这几天
    var first=0;
    day==0? first=1 : first=8-day;
    days = days-first;
    return 1+ Math.ceil(days/7);
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
大家讲道理
//定义
function getMonthWeek(a, b, c) {
    var date = new Date(a, b, c), w = date.getDay(), d = date.getDate();
    return Math.ceil(
        (d + 6 - w) / 7
    );
    }
//调用
var day=new Date();
lastCurDay = new Date(day.getFullYear(), day.getMonth() + 1, 0);//获取当前月最后一天时间
getMonthWeek(lastCurDay.getFullYear(), lastCurDay.getMonth(), lastCurDay.getDate())
ringa_lee

可以为Date.prototype添加一个获取周数的方法

Date.prototype.getWeeks = function(){
   //do something
}
怪我咯
Date.prototype.getWeekCountInCurrentMonth = function(){

    var date = new Date();
    
    date.setDate(1);
    
    var day = date.getDay() || 7;
    
    date.setMonth(date.getMonth() + 1);
    
    var endDay = date.getDay() || 7;
    
    if (day == endDay && day == 1){
        return 4;
    }else{
        return 5 + (day >= endDay && endDay != 1);
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号