JS 时间函数
                                                        
                                 Shakiusa                            
                                                        
                                 184 阅读
                            
                            
                                 0 评论
                            
                            
                                
                                 0 点赞
                                
                            
                        
                    
                                                        
function choseDate(val) {
  Date.prototype.format = function (fmt) {
    var o = {
      'M+': this.getMonth() + 1, //月份       'd+': this.getDate(), //日       'h+': this.getHours(), //小时       'm+': this.getMinutes(), //分       's+': this.getSeconds(), //秒       'q+': Math.floor((this.getMonth() + 3) / 3), //季度       S: this.getMilliseconds(), //毫秒     };
    if (/(y+)/.test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
      if (new RegExp('(' + k + ')').test(fmt)) {
        fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
      }
    }
    return fmt;
  };
  var params;
  // var date = new Date();   var now = new Date(); //当前日期   var nowDayOfWeek = now.getDay(); //今天本周的第几天   var nowDay = now.getDate(); //当前日   var nowMonth = now.getMonth(); //当前月   var nowYear = now.getYear(); //当前年   nowYear += nowYear < 2000 ? 1900 : 0; //   var lastMonthDate = new Date(); //上月日期   lastMonthDate.setDate(1);
  lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
  var lastYear = lastMonthDate.getYear();
  var lastMonth = lastMonthDate.getMonth();
  //格式化日期: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(myMonth) {
    var monthStartDate = new Date(nowYear, myMonth, 1);
    var monthEndDate = new Date(nowYear, myMonth + 1, 1);
    var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
    return days;
  }
  //获得本季度的开始月份   function getQuarterStartMonth() {
    var quarterStartMonth = 0;
    if (nowMonth < 3) {
      quarterStartMonth = 0;
    }
    if (2 < nowMonth && nowMonth < 6) {
      quarterStartMonth = 3;
    }
    if (5 < nowMonth && nowMonth < 9) {
      quarterStartMonth = 6;
    }
    if (nowMonth > 8) {
      quarterStartMonth = 9;
    }
    return quarterStartMonth;
  }
  function getDay(day) {
    var today = new Date();
    var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
    today.setTime(targetday_milliseconds); //注意,这行是关键代码     var tYear = today.getFullYear();
    var tMonth = today.getMonth();
    var tDate = today.getDate();
    tMonth = doHandleMonth(tMonth + 1);
    tDate = doHandleMonth(tDate);
    return tYear + '-' + tMonth + '-' + tDate;
  }
  function doHandleMonth(month) {
    var m = month;
    if (month.toString().length == 1) {
      m = '0' + month;
    }
    return m;
  }
  // var flag = parseInt(params);   switch (val) {
    case 1:
      // 今日       var startStr = now.format('yyyy-MM-dd 00:00:00');
      var endStr = now.format('yyyy-MM-dd 23:59:59');
      params = {
        startDate: startStr,
        endDate: endStr,
      };
      break;
    case 2:
      // 本周       var start = getDay(-6);
      var end = getDay(0);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 3:
      // 本月       var monthStartDate = new Date(nowYear, nowMonth, 1);
      var start = formatDate(monthStartDate);
      var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
      var end = formatDate(monthEndDate);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 4:
      // 本季度       var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
      var start = formatDate(quarterStartDate);
      var quarterEndMonth = getQuarterStartMonth() + 2;
      var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
      var end = formatDate(quarterStartDate);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 5:
      // 本年       var start = now.format('yyyy-01-01 00:00:00');
      var end = now.format('yyyy-12-31 23:59:59');
      params = {
        startDate: start,
        endDate: end,
      };
      break;
    case 6:
      // 昨天       var start = getDay(-1);
      var end = getDay(-1);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 7:
      // 上周       var start = getDay(-12);
      var end = getDay(-6);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 8:
      // 上月       var monthStartDate = new Date(nowYear, nowMonth - 1, 1);
      var start = formatDate(monthStartDate);
      var monthEndDate = new Date(nowYear, nowMonth - 1, getMonthDays(nowMonth - 1));
      var end = formatDate(monthEndDate);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 9:
      // 明日       var start = getDay(1);
      var end = getDay(1);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 10:
      // 下周       var start = getDay(0);
      var end = getDay(7);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
    case 11:
      // 下月       var monthStartDate = new Date(nowYear, nowMonth + 1, 1);
      var start = formatDate(monthStartDate);
      var monthEndDate = new Date(nowYear, nowMonth + 1, getMonthDays(nowMonth + 1));
      var end = formatDate(monthEndDate);
      params = {
        startDate: start + ' 00:00:00',
        endDate: end + ' 23:59:59',
      };
      break;
  }
  return params;
}
// 今日 console.log('今日', choseDate(1));
// 今日 { startDate: '2020-12-03 00:00:00', endDate: '2020-12-03 23:59:59' } // 本周 console.log('本周', choseDate(2));
// 本周 { startDate: '2020-11-27 00:00:00', endDate: '2020-12-03 23:59:59' } // 本月 console.log('本月', choseDate(3));
// 本月 { startDate: '2020-12-01 00:00:00', endDate: '2020-12-31 23:59:59' } console.log('本季度', choseDate(4));
// 本季度 { startDate: '2020-10-01 00:00:00', endDate: '2020-12-31 23:59:59' } console.log('本年', choseDate(5));
// 本年 { startDate: '2020-01-01 00:00:00', endDate: '2020-12-31 23:59:59' } // 昨日 console.log('昨日', choseDate(6));
// 昨日 { startDate: '2020-12-02 00:00:00', endDate: '2020-12-02 23:59:59' } // 上周 console.log('上周', choseDate(7));
// 上周 { startDate: '2020-11-21 00:00:00', endDate: '2020-11-27 23:59:59' } // 上月 console.log('上月', choseDate(8));
// 上月 { startDate: '2020-11-01 00:00:00', endDate: '2020-11-30 23:59:59' } // 明日 console.log('明日', choseDate(9));
// 明日 { startDate: '2020-12-04 00:00:00', endDate: '2020-12-04 23:59:59' } // 下周 console.log('下周', choseDate(10));
// 下周 { startDate: '2020-12-03 00:00:00', endDate: '2020-12-10 23:59:59' } // 下月 console.log('下月', choseDate(11));
// 下月 { startDate: '2021-01-01 00:00:00', endDate: '2021-01-31 23:59:59' }
                        
                        
                    - 本文分类:前端开发
 - 本文标签:javascript
 - 浏览次数:184 次浏览
 - 发布日期:2023-05-08 03:28:09
 - 本文链接:https://one.jingzhi3d.net/frontend_dev/126.html
 
- 上一篇 > 获取微信授权的 CODE
 - 下一篇 > js截取字符串指定长度,超出长度显示省略号【兼容中英文】
 
                
                
发表评论 取消回复