js 获取上一周 下一周 月 年

// 获取当前周日期
const getCurrentWeekDates = (type) => {
  let currentDate = null
  if (type == 'before') {
    currentDate = new Date(new Date(getShowDateStartOld.value).getTime() - 7 * 24 * 3600 * 1000)
  } else if (type == 'after') {
    currentDate = new Date(new Date(getShowDateEndOld.value).getTime() + 1 * 24 * 3600 * 1000)
  } else {
    currentDate = new Date()
  }
  const currentDayOfWeek = currentDate.getDay() // 0 (Sunday) through 6 (Saturday)
  const startDate = new Date(currentDate)
  const endDate = new Date(currentDate)
  // 计算起始日期(周一)
  startDate.setDate(startDate.getDate() - currentDayOfWeek + 1)
  // 计算结束日期(周日)
  endDate.setDate(endDate.getDate() - currentDayOfWeek + 7)
  // 将日期转换为 YYYY-MM-DD 格式
  const start = formatDateTime(startDate, 'date')
  const end = formatDateTime(endDate, 'date')
  return { start, end }
}
// 获取月份
const geMonthDates = (type) => {
  var date = ''
  if (type == 'before') {
    date = new Date(new Date(getShowDateStartOld.value).getTime() - 1 * 24 * 3600 * 1000)
  } else if (type == 'after') {
    date = new Date(new Date(getShowDateEndOld.value).getTime() + 1 * 24 * 3600 * 1000)
  } else {
    date = new Date()
  }
  let start = formatDateTime(new Date(date.getFullYear(), date.getMonth(), 1), 'date')
  let end = formatDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), 'date')
  return { start, end }
}
// 获取年
const geYearDates = (type) => {
  var date = ''
  if (type == 'before') {
    date = new Date(new Date(getShowDateStartOld.value).getTime() - 1 * 24 * 3600 * 1000)
  } else if (type == 'after') {
    date = new Date(new Date(getShowDateEndOld.value).getTime() + 1 * 24 * 3600 * 1000)
  } else {
    date = new Date()
  }
  let yearOld = formatDateTime(new Date(date), 'year')
  let start = formatDateTime(new Date(yearOld + '-1-1'), 'date')
  let end = formatDateTime(new Date(yearOld + '-12-31'), 'date')
  return { start, end }
}
posted @   风雪中de冲破  阅读(139)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
点击右上角即可分享
微信分享提示