博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

js控制日期的前或后N天,前或后一个月

Posted on 2020-07-16 11:06  和风细雨汪汪  阅读(553)  评论(0编辑  收藏  举报

/*获取指定日期前或者后指定间隔时间

  • sdate:指定日期

  • interval:时间间隔

  • caret:间隔符/
    function getNowFormatDate(sdate,interval,caret) {
    var patt1 = /^\d{4}-([0-1]?[0-9])-([0-3]?[0-9])$/; //判断输入的日期是否符合格式正则表达式
    if(!(sdate && typeof(sdate) == "string" && patt1.test(sdate))){
    sdate = new Date(); //不满足日期的则使用当前年月日
    }
    interval = isNaN(parseInt(interval)) ? 0 : parseInt(interval);//若没有输入间隔,则使用当前日
    caret = (caret && typeof(caret) == "string") ? caret : "-";// 默认间隔符为'-'
    var gdate = new Date(sdate).getTime();//获取指定年月日
    gdate = gdate + 1000
    606024interval; //加减相差毫秒数
    var speDate = new Date(gdate);//获取指定好毫秒数时间
    var preYear = speDate.getFullYear();
    var preMonth = speDate.getMonth() + 1;
    var preDay = speDate.getDate();
    preMonth = (preMonth < 10) ? ("0" + preMonth) :preMonth;
    preDay = (preDay < 10) ? ("0" + preDay) :preDay;
    var preDate = preYear + caret + preMonth + caret + preDay;
    return preDate;
    }
    /
    获取上一个月

  • @date 格式为yyyy-mm-dd的日期
    /
    function getPreMonth(date) {
    var arr = date.split('-');
    var year = arr[0]; //获取当前日期的年份
    var month = arr[1]; //获取当前日期的月份
    var day = arr[2]; //获取当前日期的日
    var days = new Date(year, month, 0);
    days = days.getDate(); //获取当前日期中月的天数
    var year2 = year;
    var month2 = parseInt(month) - 1;
    if (month2 == 0) {
    year2 = parseInt(year2) - 1;
    month2 = 12;
    }
    var day2 = day;
    var days2 = new Date(year2, month2, 0);
    days2 = days2.getDate();
    if (day2 > days2) {
    day2 = days2;
    }
    if (month2 < 10) {
    month2 = '0' + month2;
    }
    var t2 = year2 + '-' + month2 + '-' + day2;
    return t2;
    }
    /
    *

  • 获取下一个月

  • @date 格式为yyyy-mm-dd的日期
    */
    function getNextMonth(date) {
    var arr = date.split('-');
    var year = arr[0]; //获取当前日期的年份
    var month = arr[1]; //获取当前日期的月份
    var day = arr[2]; //获取当前日期的日
    var days = new Date(year, month, 0);
    days = days.getDate(); //获取当前日期中的月的天数
    var year2 = year;
    var month2 = parseInt(month) + 1;
    if (month2 == 13) {
    year2 = parseInt(year2) + 1;
    month2 = 1;
    }
    var day2 = day;
    var days2 = new Date(year2, month2, 0);
    days2 = days2.getDate();
    if (day2 > days2) {
    day2 = days2;
    }
    if (month2 < 10) {
    month2 = '0' + month2;
    }

    var t2 = year2 + '-' + month2 + '-' + day2;
    return t2;
    }