JavaScript 获取当日在今年第几周

获取当日在今年第几周

// 获取当天是今年的第几周(周一到周日为一周)
// 如果当年1月1日不是周一,则1月第一个周一为第二周的开始
function getWeekInYear() {
    var endDate = new Date(),
        curYear = endDate.getFullYear(),
        startDate = new Date(curYear, 0, 1);

    var startWeek = startDate.getDay(), // 1月1号是星期几:0-6
        offsetWeek = 0; //用来计算不完整的第一周,如果1月1号为星期一则为0,否则为1

    if (startWeek != 1) {
        offsetWeek = 1;
        if (!startWeek) {
            startDate.setDate(1);
        } else {
            startDate.setDate(8 - startWeek); // (7 - startWeek + 1)
        }

    }
    var distanceTimestamp = endDate - startDate,
        days = Math.ceil(distanceTimestamp / (24 * 60 * 60 * 1000)) + startWeek,
        weeks = Math.ceil(days / 7) + offsetWeek;
    return weeks;
}

posted @ 2017-03-23 14:23  DaMingGe  阅读(410)  评论(0编辑  收藏  举报