JS 获取周数 包括年月日

/**
 * [获取某天是该年内的第N周]
 * @example getWeek()
 * @access  public
 * @author Adam
 * @created 2020-12-11T12:04:54+0800
 * @param   {String} now
 * @return  {[int]}
 */
function getWeek(now='2020-12-11') {
    today = new Date(now);
    var firstday = new Date();  // 该年的第一天
    year = now.slice(0, now.indexOf('-'));
    firstday.setYear(year);
    firstday.setMonth(0);
    firstday.setDate(1);  // 设置成这年的一月一号
    var timing = today - firstday;
    var days = Math.ceil(timing / (24 * 60 * 60 * 1000));  // 距离第一天共有多少天
    days += firstday.getDay()+1;  // 假如今年一月一号是星期三,第一周就已经过去了三天,加上西方认为星期天是一周的第一天
    var weeks = Math.ceil(days / 7);  // 获得周数
    // console.log(today, firstday, days, weeks);
    return weeks;
}

getWeek();  // 50
getWeek('2019-1-7');  // 2

 

posted @ 2020-12-11 14:41  留得青山在哈  阅读(462)  评论(0)    收藏  举报