dayjs 使用

资料

dayjs 官网地址

使用

  • 安装
npm install dayjs
  • 使用 dayjs 通过 2025-8 (2025年第8周) 这样的文本数据返回对应周的周一的年月日和周日的年月日

const weekStr = '2025-8';
const year = parseInt(weekStr.split('-')[0]);
const weekNum = parseInt(weekStr.split('-')[1]);

// 获取该周周一的日期
const monday = dayjs().year(year).isoWeek(weekNum).startOf('isoWeek');
// 获取该周周日的日期
const sunday = dayjs().year(year).isoWeek(weekNum).endOf('isoWeek');

console.log('周一:', monday.format('YYYY-MM-DD'));
console.log('周日:', sunday.format('YYYY-MM-DD'));
  • 使用 dayjs 通过 2025-1 (2025年第1月) 这样的文本数据返回对应月的第一天的年月日和最后一天的年月日
const monthStr = '2025-1';
const year = parseInt(monthStr.split('-')[0]);
const monthNum = parseInt(monthStr.split('-')[1]);

// 获取该月第一天的日期
const firstDay = dayjs().year(year).month(monthNum - 1).startOf('month');
// 获取该月最后一天的日期
const lastDay = dayjs().year(year).month(monthNum - 1).endOf('month');

console.log('第一天:', firstDay.format('YYYY-MM-DD'));
console.log('最后一天:', lastDay.format('YYYY-MM-DD'));
  • 将上面的两个功能封装成一个函数

/**
 * 通过 2025-8 (2025年第8周) 返回对应周的周一的年月日和周日的年月日 或者 通过 2025-1 (2025年第1月) 返回对应月的第一天的年月日和最后一天的年月日
 * @param timeStr 2025-8 || 2025-1
 * @param dateType w || m
 */
const getDateRange = (timeStr, dateType) => {
  const [year, num] = timeStr.split('-').map(Number);

  if (dateType === 'w') {
    // 周模式
    return [dayjs().year(year).isoWeek(num).startOf('isoWeek').format('YYYY-MM-DD'),
    dayjs().year(year).isoWeek(num).endOf('isoWeek').format('YYYY-MM-DD')
    ];
  } else {
    // 月模式
    return [
      dayjs().year(year).month(num - 1).startOf('month').format('YYYY-MM-DD'),
      dayjs().year(year).month(num - 1).endOf('month').format('YYYY-MM-DD')
    ]
  }
}

console.log(getDateRange('2025-8', 'w'));

console.log(getDateRange('2025-1', 'm'));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容