封装ts文件 根据当前日期获取当前周可操作下一周上一周
//
export const getWeek = (num, curr) => {
let currentFirstDate
let dayArr: { day: string
let formatDate = function (date: any) {
var year = date.getFullYear() + '年'
var month = (date.getMonth() + 1) + '/'
var day = date.getDate()
var week = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'][date.getDay()]
return { day: month + day, week: week, weekDay: week + "(" + month + day + ")" }
}
let addDate = function (date: any, n: number) {
date.setDate(date.getDate() + n)
return date
}
let setDate = function (date: any) {
var week = date.getDay() - 1
date = addDate(date, week * -1)
currentFirstDate = new Date(date)
for (var i = 0
dayArr.push(formatDate(i == 0 ? date : addDate(date, 1)))
}
return { dayArr, currentFirstDate }
}
if (num) { //当传入参数表示操作上一周下一周
return setDate(addDate(curr, num))
}
return setDate(new Date())
}
这是控件
<div>
<el-button type="primary" @click="updateWeek(-7)">上一周</el-button>
<el-button type="primary" @click="updateWeek(7)">下一周</el-button>
</div>
引入到vue文件
import { getWeek } from "./enum";
生命周期可以直接调用
let weekJson=getWeek()
console.log(getWeek())
let updateWeek=(num:number)=>{
weekJson=getWeek(num,week.currentFirstDate)
}
获取当前年所有周的日期
function getAllSunday(t) {
let time = t.replace(/-/g, ":")
time = time.split(":")
let myTime = new Date(time[0], (time[1] - 1), time[2])
let date = myTime
//无参数传入,获取当年的每个周日
// let date = new Date()
let year = date.getFullYear()
let m, d, day, dayNum = ""
let result =[]
for (m = 1
switch (m) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
dayNum = 31
break
case 4:
case 6:
case 9:
case 11:
dayNum = 30
break
case 2:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
dayNum = 29
} else {
dayNum = 28
}
break
}
for (d = 1
date.setMonth(m - 1, d)
//返回表示星期的某一天的数字 0 --> 周日
day = date.getDay()
if (day == 0) {
let month = date.getMonth() + 1
let day = date.getDate()
if (month < 10) {
month = '0' + month
}
if (day < 10) {
day = '0' + day
}
result.push({weekStart:date.getFullYear() + '-' + month + '-' + day})
}
}
}
result.forEach((item,index)=>{
item.weekNum="第"+(index+1)+"周"
})
console.log(result)
}
function thisDate(date){
var year = date.getFullYear() + '-'
var month = (date.getMonth() + 1) + '-'
var day = date.getDate()
var newDate=year+month+day
console.log("当前日期",newDate)
return newDate
}
getAllSunday(thisDate(new Date()))

获取当前月的所有日期
let formatDate = function (date) {
var year = date.getFullYear();
var month = (date.getMonth() + 1);
var day = date.getDate();
return getDay(year,month)
};
function getDay(Year,Month) {
var DayCount;
if (Year<1912 || Month<1)
return null;
switch (Month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
DayCount=31;
break;
case 2:
DayCount=28;
if (Year%4 == 0)
DayCount=29;
break;
default:
DayCount=30;
break;
}
let arr =[]
for(let i=1;i<=DayCount;i++){
if(i<10){
arr.push(Month+"-"+"0"+i)
}else{
arr.push(Month+"-"+i)
}
}
return arr;
}
console.log(formatDate(new Date()))
