获取某周、某月、上月、某季度的开始日期、结束日期及判断日期第几周(注意:月份从零开始)

/**  
 * 获取某周、某月、上月、某季度的开始日期、结束日期及判断日期第几周  
 */

//格式化日期:yyyy-MM-dd      
function formatDate(date) {
    var myyear = date.getFullYear();
    var mymonth = date.getMonth() + 1;
    var myweekday = date.getDate();

    if(mymonth < 10) {
        mymonth = "0" + mymonth;
    }
    if(myweekday < 10) {
        myweekday = "0" + myweekday;
    }
    return(myyear + "-" + mymonth + "-" + myweekday);
}

//获得某月的天数      
function getMonthDays(paraYear, paraMonth) {
    var monthStartDate = new Date(paraYear, paraMonth, 1);
    var monthEndDate = new Date(paraYear, paraMonth + 1, 1);
    var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
    return days;
}

var DateStr="";
function GetDateCN(Datevalue) {
    var month = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
    for(var i = 0; i <= month.length; i++) {
        if (i==Datevalue) {
            DateStr=month[i]; 
        }
    }
    return DateStr;
}

//获得某周的开始日期      
function getWeekStartDate(paraYear, paraMonth, paraDay, paraDayOfWeek) {
    var weekStartDate = new Date(paraYear, paraMonth, paraDay + 1 - paraDayOfWeek);
    return formatDate(weekStartDate);
}

//获得某周的结束日期      
function getWeekEndDate(paraYear, paraMonth, paraDay, paraDayOfWeek) {
    var weekEndDate = new Date(paraYear, paraMonth, paraDay + (7 - paraDayOfWeek));
    return formatDate(weekEndDate);
}

//获得某月的开始日期      
function getMonthStartDate(paraYear, paraMonth) {
    var monthStartDate = new Date(paraYear, paraMonth, 1);
    return formatDate(monthStartDate);
}

//获得某月的结束日期      
function getMonthEndDate(paraYear, paraMonth) {
    var monthEndDate = new Date(paraYear, paraMonth, getMonthDays(paraYear, paraMonth));
    return formatDate(monthEndDate);
}



//获得上月开始时间   
function getLastMonthStartDate(paraYear, lastMonth) {
    var lastMonthStartDate = new Date(paraYear, lastMonth, 1);
    return formatDate(lastMonthStartDate);
}

//获得上月结束时间   
function getLastMonthEndDate(paraYear, lastMonth, lastMonth) {
    var lastMonthEndDate = new Date(paraYear, lastMonth, getMonthDays(lastMonth));
    return formatDate(lastMonthEndDate);
}

//获得某季度的开始日期      
function getQuarterStartDate(paraYear, paraSeason) {
    switch(paraSeason) {
        case '1':
            return paraYear + "-01-01";
        case '2':
            return paraYear + "-04-01";
        case '3':
            return paraYear + "-07-01";
        case '4':
            return paraYear + "-10-01";
    }
}

//获得某季度的结束日期      
function getQuarterEndDate(paraYear, paraSeason) {
    switch(paraSeason) {
        case '1':
            return paraYear + "-03-31";
        case '2':
            return paraYear + "-06-30";
        case '3':
            return paraYear + "-09-30";
        case '4':
            return paraYear + "-12-31";
    }
}



//获取某年某周的开始日期
function getBeginDateOfWeek(paraYear, weekIndex) {
    var firstDay = GetFirstWeekBegDay(paraYear);
    //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
    var time = (weekIndex - 1) * 7 * 24 * 3600000;
    var beginDay = firstDay;
    //为日期对象 date 重新设置成时间 time
    beginDay.setTime(firstDay.valueOf() + time);
    return formatDate(beginDay);
}


//获取某年某周的结束日期
function getEndDateOfWeek(paraYear, weekIndex) {
    var firstDay = GetFirstWeekBegDay(paraYear);
    //7*24*3600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
    var time = (weekIndex - 1) * 7 * 24 * 3600000;
    var weekTime = 6 * 24 * 3600000;
    var endDay = firstDay;
    //为日期对象 date 重新设置成时间 time
    endDay.setTime(firstDay.valueOf() + weekTime + time);
    return formatDate(endDay);
}



//获取日期为某年的第几周
function GetWeekIndex(dateobj) {
    var firstDay = GetFirstWeekBegDay(dateobj.getFullYear());
    if(dateobj < firstDay) {
        firstDay = GetFirstWeekBegDay(dateobj.getFullYear() - 1);
    }
    d = Math.floor((dateobj.valueOf() - firstDay.valueOf()) / 86400000);
    return Math.floor(d / 7) + 1;
}

//获取某年的第一天
function GetFirstWeekBegDay(year) {
    var tempdate = new Date(year, 0, 1);
    var temp = tempdate.getDay();
    if(temp == 1) {
        return tempdate;
    }
    temp = temp == 0 ? 7 : temp;
    tempdate = tempdate.setDate(tempdate.getDate() + (8 - temp));
    return new Date(tempdate);
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值