JS获取-某一天是某个时间段内的 第几周,星期几

Posted 王萌萌萌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS获取-某一天是某个时间段内的 第几周,星期几相关的知识,希望对你有一定的参考价值。


    最近做课程表,要将所有课程显示到一个课程格子里,默认加载本周课程,于是就需要知道本周是这个学期的第几周,引出本文主要内容:


    首先,这个学期的开始时间是要知道的,然后根据学期的开始时间计算本周是第几周,今天是星期几。


    

function()  
    /* 
     * 说明: 
     * 本代码将周一作为每周的开始 
     */  
  
    function TodayInfo(start)   
        var WEEKLEN = 7, // 一周7天
            WEEKDAYS = ["日", "一", "二", "三", "四", "五", "六"],  
            weekInfo = "week": null, "day": null, // 初始化返回信息,默认第null周,星期null  
            oneDay = 24 * 60 * 60 * 1000, // 一天的毫秒时长  
            weekLeave, // 开学当天所在周剩余天数  
            weekStart, // 开学当天start是星期几  
            today, // 今天  
            dateDiff, // 今天与开学当天日期差  
            sDate; //开学之日,日期对象  
        var rDateStr = /\\d4[\\/-]\\d1,2[\\/-]\\d1,2/g; // 简单的日期格式校验:2013/12/19  
        if (!rDateStr.test(start))   
            alert("请使用合法的开学日期!!!");  
            return weekInfo;  
          
        sDate = new Date(start.replace("-", "/"));  
        weekStart = sDate.getDay();  
        weekStart = weekStart === 0 ? 7 : weekStart; // JS中周日的索引为0,这里转换为7,方便计算  
          
        weekLeave = WEEKLEN - weekStart;  
        today = new Date();  
        weekInfo.day = WEEKDAYS[today.getDay()];  
        today = new Date(today.getFullYear() + "/" + (today.getMonth() + 1) + "/" + today.getDate());  
        dateDiff = today - sDate;  
        if (dateDiff < 0)   
            alert("未开学呢 !!!");  
            return weekInfo;  
          
        dateDiff = parseInt(dateDiff / oneDay);  
        weekInfo.week = Math.ceil((dateDiff - weekLeave) / WEEKLEN) + 1;  
        return weekInfo;  
      

    // 测试结果  
    var td = TodayInfo("2013/12/16");  
    console.log("今天是自2013/12/16日,开学以来的第 " + td.week + " 周,今天星期" + td.day);  
    td = TodayInfo("2013/11/11");  
    console.log("今天是自2013/11/11日,开学以来的第 " + td.week + " 周,今天星期" + td.day);  
    td = TodayInfo("2013/09/01");  
    console.log("今天是自2013/09/01日,开学以来的第 " + td.week + " 周,今天星期" + td.day);  
    td = TodayInfo("2013/12/29");  
    console.log("今天是自2013/12/29日,开学以来的第 " + td.week + " 周,今天星期" + td.day);  
)();  

    有了这个函数,就可以轻松的计算出第几周和星期几了!




以上是关于JS获取-某一天是某个时间段内的 第几周,星期几的主要内容,如果未能解决你的问题,请参考以下文章

获取“一天中的第几周”?

MySQL中如何获得指定日期中月份的第一天是周几?

计算某一天是星期几?—— 蔡勒(Zeller)公式

JAVA给一个时间获取一年的第几周,正常自然周是 星期一至星期日为一周,

JS学校里怎么计算本周是该年的第几周

C#中周,月,第几周,周开始结束时间de方法总结