Fork me on GitHub

时间处理函数

// 这个方法将取得某年(year)第几周(weeks)的星期几(weekDay)的日期
function getXDate(year,weeks,weekDay){
// 用指定的年构造一个日期对象,并将日期设置成这个年的1月1日
// 因为计算机中的月份是从0开始的,所以有如下的构造方法
var date = new Date(year,”0”,”1”);

// 取得这个日期对象 date 的长整形时间 time
var time = date.getTime();

// 将这个长整形时间加上第N周的时间偏移
// 因为第一周就是当前周,所以有:weeks-1,以此类推
// 7243600000 是一星期的时间毫秒数,(JS中的日期精确到毫秒)
time+=(weeks-1)724*3600000;

// 为日期对象 date 重新设置成时间 time
date.setTime(time);
return getNextDate(date,weekDay);
}

function getNextDate(nowDate,weekDay){
// 0是星期日,1是星期一,…
weekDay%=7;
var day = nowDate.getDay();
var time = nowDate.getTime();
var sub = weekDay-day;
if(sub <= 0){
sub += 7;
}
time+=sub243600000;
nowDate.setTime(time);
return nowDate;
}

//这个函数取到当前日期处于第几周
function getWeekOfYear(dayValue){
var today = new Date(Date.parse(dayValue.replace(/-/g, ‘/‘)));
var firstDay = new Date(today.getFullYear(),0, 1);
var dayOfWeek = firstDay.getDay();
var spendDay= 1;
if (dayOfWeek !=0) {
spendDay=7-dayOfWeek+1;
}
firstDay = new Date(today.getFullYear(),0, 1+spendDay);
var d =Math.ceil((today.valueOf()- firstDay.valueOf())/ 86400000);
var result =Math.ceil(d/7);
return result+1;
};