//日期加减法 date参数为计算开始的日期,days为需要加的天数
//格式:addDate('2017-1-11',20)
function addDate(date, days) {
var d = new Date(date);
d.setDate(d.getDate() + days);
var m = d.getMonth() + 1;
return (
d.getFullYear() +
"-" +
(m > 9 ? m : "0" + m) +
"-" +
(d.getDate() > 9 ? d.getDate() : "0" + d.getDate())
);
}
// 第n年的第n周,获取开始和结束时间 (星期一为一周的开始)
function week_date(weekstr) {
let year = weekstr.split("-")[0];
let weekNo = weekstr.split("-")[1] * 1 + 1;
// 此年1号是星期几
console.log('调用时传的',year,weekNo);
let oneday = new Date(year + "-01-01").getDay(); //0-6
// console.log(oneday);
// 方便计算,当为星期天时为7
if (oneday == 0) {
oneday = 7;
}
let one_fistday;
let one_lastday;
// 如果1号刚好是星期一
if (oneday == 1) {
one_fistday = year + "-01-01";
one_lastday = year + "-01-07";
} else {
let jj = 8 - oneday;
one_fistday =
year -
1 +
"-12-" +
(31 - oneday + 2 > 9 ? 31 - oneday + 2 : "0" + (31 - oneday + 2));
one_lastday = year + "-01-" + (jj > 9 ? jj : "0" + jj);
}
let fistday;
let lastday;
// 如果刚好是第一周
if (weekNo == 1) {
fistday = one_fistday;
lastday = one_lastday;
} else {
fistday = addDate(one_lastday, (weekNo - 2) * 7 + 1);
lastday = addDate(one_lastday, (weekNo - 1) * 7);
}
console.log(fistday, lastday,'week_date');
return [fistday, lastday];
}
第n年的第n周,获取开始和结束时间
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 在项目开发中经常会遇到时间参数,比如开始时间结束时间;但是往往会出现一个问题那就是时间的格式问题,当前后端格式不一...
- 今天在做页面的时候遇到了一个问题,页面上有个2017/05/08--2017/05/14 这个是通过前端这边计算的...