首页 前端知识 js 获取季度开始日期和结束日期

js 获取季度开始日期和结束日期

2024-07-10 22:07:51 前端知识 前端哥 807 533 我要收藏

1.引入 dayjs ,获取当前季度的范围

import dayjs from 'dayjs';

// 获取本季开始日期和结束日期

function getQuarterStartAndEndDate(): [string, string] {

  const date = dayjs();

  const y = date.year();

  const q = date.quarter();

  const mStart = q * 3 - 2;

  const mEnd = q * 3;

  const start = dayjs(`${y}-${mStart}`).startOf('month').format('YYYY-MM-DD');

  const end = dayjs(`${y}-${mEnd}`).endOf('month').format('YYYY-MM-DD');

  return [start, end];

}

// 使用
getQuarterStartAndEndDate()  // ['2024-04-01', '2024-06-31']

2.获取上赛季开始日期和结束日期

import dayjs from 'dayjs';

function getPreQuarterStartAndEndDate(): [string, string] {
  const date = dayjs();
  const y = date.year();
  const q = date.quarter();
  let start = '';
  let end = '';

  if (q < 2) {
    start = dayjs(`${y - 1}-${10}`)
      .startOf('month')
      .format('YYYY-MM-DD');
    end = dayjs(`${y - 1}-${12}`)
      .endOf('month')
      .format('YYYY-MM-DD');
  } else {
    const mStart = (q - 1) * 3 - 2;
    const mEnd = (q - 1) * 3;
    start = dayjs(`${y}-${mStart}`).startOf('month').format('YYYY-MM-DD');
    end = dayjs(`${y}-${mEnd}`).endOf('month').format('YYYY-MM-DD');
  }

  return [start, end];
}

// 示例
getPreQuarterStartAndEndDate()  // ['2024-01-01', '2024-03-31']

3.获取两个日期之间的所有日期

import dayjs from 'dayjs';

/**
 * 获取两个日期之间的所有日期
 * @param start - 开始时间 格式:"YYYY-MM-DD"
 * @param end - 结束时间 格式:"YYYY-MM-DD"
 * @return string[]
 */

function getDateRange(start: string, end: string): string[] {
  let startDate = dayjs(start); // 开始时间
  const endDate = dayjs(end); // 结束时间

  if (!start || !end || startDate.isAfter(endDate)) {
    return [];
  }

  const dateRange: string[] = [];

  while (startDate.isBefore(endDate) || startDate.isSame(endDate)) {
    dateRange.push(startDate.format('YYYY-MM-DD'));
    startDate = startDate.add(1, 'day');
  }

  return dateRange;
}


// 示例
getDateRange('2024-01-01','2024-01-03') // ['2024-01-01', '2024-01-02', '2024-01-03']

转载请注明出处或者链接地址:https://www.qianduange.cn//article/13928.html
标签
评论
发布的文章

jQuery-w3school(2020

2024-08-04 23:08:08

jQuery常用方法总结

2024-08-04 23:08:34

Vue2使用echarts树图(tree)

2024-08-04 23:08:29

图表库-Echarts

2024-08-04 23:08:57

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!