// 根据周数获取日期
// w 周
// y 年
function getDateOfISOWeek(w, y) {
var simple = new Date(y, 0, 1 + (w - 1) * 7);
var dow = simple.getDay();
var ISOweekStart = simple;
if (dow <= 4)
ISOweekStart.setDate(simple.getDate() - simple.getDay() + 1);
else
ISOweekStart.setDate(simple.getDate() + 8 - simple.getDay());
console.log(ISOweekStart.getFullYear())
console.log(ISOweekStart.getMonth() + 1)
console.log(ISOweekStart.getDate())
return ISOweekStart;
}
getWeek(new Date('2019-11-26'))
function getWeek (str) {
let day=Date.parse(str);
//如果不是当年的第一天不是星期一,则该日所属周数为上一年的最后一周
day=new Date(day);
if(day.getDay() !== 1){
day = day.getTime()-24*60*60*1000
day = new Date(day);
}
day.setMonth(0);
day.setDate(1);
day.setHours(0);
day.setMinutes(0);
day.setSeconds(0);//到这里就得到该年的一月一日
let today = Date.parse(str);
today=new Date(today);
let todayWeek = today.getDay()
//计算日期是一年中的第几天
let rankDay = Math.ceil((today.getTime()-day.getTime())/(1000*24*60*60))
let rankWeek = Math.ceil(rankDay/7)
rankWeek = rankWeek < 10?("0"+rankWeek):rankWeek
let year = day.getFullYear().toString()
console.log(year)
console.log(rankWeek)
return year+rankWeek
}
// 根据日期计算 周一和周日 日期
function setDate(date) {
let nowTime = date.getTime()
let day = date.getDay()
let oneDayTime = 24*60*60*1000
let MonDayTime = nowTime - (day -1)*oneDayTime
let sunDayTime = nowTime + (7-day)*oneDayTime
let monDay = new Date(MonDayTime)
let sunDay = new Date(sunDayTime)
let startTime = this.formatDate(monDay)
let endTime = this.formatDate(sunDay)
}
// 格式化日期
function formatDate (date) {
let year = date.getFullYear()
let month = date.getMonth() + 1
let dateTime = date.getDate()
if (month < 10){
month = '0' + month
}
if (dateTime < 10) {
dateTime = '0' + dateTime
}
return year + '-' + month + '-' + dateTime
}