关于javascript:记录js-获取周月年的开始及结束时间

46次阅读

共计 1725 个字符,预计需要花费 5 分钟才能阅读完成。

/* 工夫加一天 */
const getTimes = (time)=>{time = new Date(time.getTime() + 3600 * 1000 * 24 * 1);
  const year = time.getFullYear();
  const month = (time.getMonth() + 1).toString().padStart(2, "0");
  const day = time.getDate().toString().padStart(2, "0");
  return `${year}-${month}-${day}`;
}

/* 工夫格局解决 */
const timeFormat = (date,status) => {const y = date.getFullYear(); // 年
  const m = (date.getMonth() + 1).toString().padStart(2, '0'); // 月
  const d = date.getDate().toString().padStart(2, '0'); // 日
  if(status) return `${y}-${m}-${d} 00:00:00`;
  return `${y}-${m}-${d} 23:59:59`;
}

/* ------------------------------------------------------ */
/* 本周星期一 */
const getFirstDayOfWeek = (date,status=true) => {const weekday = date.getDay() || 7;
  date.setDate(date.getDate() - weekday + 1);
  if(status) return timeFormat(date,status);
  return getWeekLast(date);
}

/* 本周最初一天 */
const getWeekLast = (data)=>{const nowTime = data.getTime() ;
  const day = data.getDay();
  const oneDayTime = 24*60*60*1000 ;
  const SundayTime =  nowTime + (7-day)*oneDayTime;
  return timeFormat(new Date(SundayTime));
}

/* ------------------------------------------------------ */
/* 本月第一天 */
const getFirstDayOfMonth = (date,status=true)=>{date.setDate(1);
    if(status) return timeFormat(date,status,'月');
    return CurrentMonthLast(date);
}
/* 本月最初一天 */
const CurrentMonthLast = (date)=>{let currentMonth=date.getMonth();
  let nextMonth=++currentMonth;
  let nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
  let oneDay=1000*60*60*24;
  return timeFormat(new Date(nextMonthFirstDay-oneDay));
}

/* ------------------------------------------------------ */
/* 本年年初 */
const getFirstDayOfYear = (date,status=true)=>{date.setDate(1);
  date.setMonth(0);
  if(status) return timeFormat(date,status,'年');
  return getEndYear(date);
}
/* 本年年尾 */
const getEndYear = (date)=>{date.setFullYear(date.getFullYear() + 1); 
  date.setMonth(0);
  date.setDate(0);
  return timeFormat(date);
}

正文完
 0