拿到一个星期时段,固定为7天,且固定为周一到周日。
假设开始时间为:2017-11-27 ,结束时间为:2017-12-03,这一周是跨月的。
若在本月(也就是12月份)的这几天转换成星期几,然后文字加粗或变色特殊显示,让上个月(也就是11月份)的日期也转换成星期几,字体颜色变灰显示。
如何操作?越详细越好
试了一下,每当拿到的这个星期跨月的时候就出错。
求高人指点。。。
本人小白,问题可能过于简单、弱智。还望大家夺包涵,别嫌弃。
拿到一个星期时段,固定为7天,且固定为周一到周日。
假设开始时间为:2017-11-27 ,结束时间为:2017-12-03,这一周是跨月的。
若在本月(也就是12月份)的这几天转换成星期几,然后文字加粗或变色特殊显示,让上个月(也就是11月份)的日期也转换成星期几,字体颜色变灰显示。
如何操作?越详细越好
试了一下,每当拿到的这个星期跨月的时候就出错。
求高人指点。。。
本人小白,问题可能过于简单、弱智。还望大家夺包涵,别嫌弃。
假如拿到结束时间,则开始日期计算为结束日期减7,如果结果大于0,则开始日期就是结束日期 + 1 - 7,也可以确定是同一个月,如果结果小于等于0,如结束12-03结果为-4,则判断上个月天数,最终开始日期为上月(30)30 + 1 - 4 27号,然后拿到这几个日期比较,大于结束日期的都为上个月的,小于结束日期的为这个月的。如果开始结束日期都知道那更简单了,这7天里比结束日期大的都是上个月,小的是这个月。
直接上代码,demo链接描述
let dateStart = new Date("2017-11-27");
let dateNow = new Date();
let year = dateNow.getFullYear();
let month = dateNow.getMonth();
let week = ['日', '一', '二', '三', '四', '五', '六']
for (let i = 0; i < 7; i++) {
let tmpYear = dateStart.getFullYear();
let tmpMonth = dateStart.getMonth();
// 判断日期是否在当前月份
let currentMon = (tmpYear === year && tmpMonth === month);
let dom = document.createElement('span');
dom.className = currentMon ? 'currentMon' : 'otherMon';
dom.innerHTML = week[dateStart.getDay()];
document.body.appendChild(dom);
// 日期加一天
dateStart.setDate(dateStart.getDate() + 1);
}
span {
padding: 8px 16px;
}
.currentMon {
color: blue;
font-weight: bold;
}
.otherMon {
color: gray;
}
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答889 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
getDay可以获取周几的。
至于是不是本月可以判断嘛
这个 isCurrMonth就是判断结果