时间 Date

时间选择 月最后一天,选择3/6/12个月

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
</body>
<script>
function getMonthLastDay(year,month) {        
    var new_year = year;    //取当前的年份        
    var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定)        
    if(month>12)            //如果当前大于12月,则年份转到下一年        
    {        
    new_month -=12;        //月份减        
    new_year++;            //年份增        
    }        
    var new_date = new Date(new_year,new_month,1);                //取当年当月中的第一天        
    return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期        
}        

// var startVal = $('[name="startDate"]').val(now.format('yyyy-MM-dd'));

function getEndDate(MonthType) {

    // var d = new Date();
    //12月
    // var d = new Date('2017/01/01');
    // var d = new Date('2017/01/31');
    // var d = new Date('2017/12/01');
    var d = new Date('2019/12/30');
    // var d = new Date('2019/12/31');
    // var d = new Date('2018/11/30');
    // var d = new Date('2018/12/30');
    // var d = new Date('2018/12/31');
    // var d = new Date('2019/01/31');
    // var d = new Date('2019/03/01');
    // var d = new Date('2020/03/01');
    // var d = new Date('2020/01/31');
    // var d = new Date('2020/01/01');
    // var d = new Date('2020/02/01');
    // var d = new Date('2020/12/01');

    //6月
    // var d = new Date('2017/01/01');
    // var d = new Date('2017/01/31');
    // var d = new Date('2017/06/01');
    // var d = new Date('2017/06/30');
    // var d = new Date('2017/07/01');
    // var d = new Date('2017/07/02');
    // var d = new Date('2020/01/01');
    // var d = new Date('2020/02/01');
    // var d = new Date('2020/12/01');

    //季度
    // var d = new Date('2017/07/31');
    // var d = new Date('2017/07/01');
    // var d = new Date('2017/02/01');
    // var d = new Date('2019/01/31');
    // var d = new Date('2019/03/01');
    // var d = new Date('2020/03/01');
    // var d = new Date('2020/01/31');

    var gm = d.getMonth() + 1 + MonthType ;   
    var gd = d.getDate() - 1;
    var newDate = new Date(d.getFullYear(),gm - 1,gd);

    var tarGm = gm>12 ? gm-12 : gm; //预期月份
    if(gm==13&&gd==0){    // 这里主要涉及到跨年,并且日期为00 ,月份会向预期前一年最后一月,年份会向预期前一年,如2020.01.01 --》 2020.12.31的情况处理
        tarGm += 12;
    }
    if(newDate.getMonth() + 1 > tarGm){
        newDate = new Date(newDate.getFullYear(),gm%12-1,getMonthLastDay(newDate.getFullYear(),gm%12));
    }
    console.log(newDate)
}
// getEndDate(3);
// getEndDate(6);
getEndDate(12);

</script>

</html>
posted @ 2017-11-29 11:35  Teaism  阅读(173)  评论(0编辑  收藏  举报