js获取常见时间

js获取常见时间

// 格式化事件
export function formatTime(param) {
  const y = param.getFullYear();
  let m = param.getMonth() + 1;
  let d = param.getDate();
  m = m < 10 ? `0${m}` : m;
  d = d < 10 ? `0${d}` : d;
  return `${y}-${m}-${d}`;
}

/**
 * 以当前的时间为基础, 便携获取事件(最近2天,最近1周,最近1月,最近2月,最近半年,最近一年,本周,本月,本年)
 * @param { string } code
 * @returns { Object }
 */
export function getDate(code) {
  const date = new Date();
  const endTime = formatTime(date);
  const date1 = Date.parse(date);
  let start = '';
  let end = '';
  const oneDay = 1000 * 3600 * 24;

  // eslint-disable-next-line default-case
  switch( code ) {
    // 今天
    case 'today':
      start = new Date();
      break;
    // 最近2天
    case 'lastTwoDay':
      start = date1 - oneDay * 2;
      break;
    // 最近1周
    case 'lastOneWeek':
      start = date1 - oneDay * 7;
      break;
    case 'lastTwoWeek':  // 最近2周
      start = date1 - oneDay * 14;
      break;
    case 'lastOneMouth':  // 最近1月
      start = new Date();
      start.setMonth(start.getMouth() - 2);
      break;
    case 'lastTwoMouth':  // 最近2月
      start = new Date();
      start.setMouth(start.getMouth() - 3);
      break;
    case 'lastOneYear':  // 最近一年
      start = new Date();
      start.setYear(start.getFullTear() - 1);
      break;
    case 'lastHalfYear': // 最近半年
      start = date1 - oneDay * 183;
      break;
    case 'thisWeek':  // 本周
      const a = 6 - date.getDay();
      start = new Date(date1 - oneDay * a).setHours(0, 0, 0, 0);
      end = new Date(date1 + oneDay * (1 + date.getDay())).setHours(24, 0, 0, 0);
      break;
    case 'thisMonth':
      start = new Date();
      start.setHours(0, 0, 0, 0);
      start.setMonth(start.getMonth(), 1);
      end = new Date(start);
      end.setHours(0, 0, 0, 0);
      end.setMonth(start.getMonth() + 1, 1);
      break;
      //本年
    case 'thisYear':
      start = new Date();
      start.setHours(0, 0, 0, 0);
      start.setMonth(0, 1);
      start.setYear(start.getFullYear());
      end = new Date(start);
      end.setHours(0, 0, 0, 0);
      end.setMonth(start.getMonth(), 1);
      end.setYear(start.getFullYear() + 1);
      break;
    }
  
    return {
      startTime: formatTime(new Date(start)),
      endTime: end ? formatTime(new Date(end)) : endTime,
    };
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容