js中如何将每星期换成具体的时间段的方法?

告诉你一个变量性的第几周,然后计算出其时间段并显示。... 告诉你一个变量性的第几周,然后计算出其时间段并显示。 展开
 我来答
zwjtk
2017-07-17 · TA获得超过1741个赞
知道小有建树答主
回答量:300
采纳率:82%
帮助的人:207万
展开全部

你好,

其实题设还少一个条件,我们通常所谓的第几周,是相对于某一年的。因此应该还有一个变量(年)。

好了,条件齐全了我们来看一下代码:

// 变量第几周
var week = 3;
// 假设是2017年
var year = 2017;
// 一天时间的毫秒时长
var daySeconds = 24 * 3600 * 1000;
// 指定年份第一天的日期对象,即:一月一日
var firstDayOfYear = new Date(year + '/01/01');
/**
 * 计算第一周的第一天日期对象
 * 通过当年的第一天取得是星期几,用当年的第一天减去第一周已经过去的几天,得到第一周的第一天
 */
var firstDayOfFirstWeek = new Date(firstDayOfYear.getTime() - firstDayOfYear.getDay() * daySeconds);
/**
 * 计算指定第week周的第一天
 * week-1:第week周,区间应该是第(week - 1)周结束后开始算起
 * 7:一周有7天
 */
var firstDayOfThisWeek = new Date(firstDayOfFirstWeek.getTime() + (week - 1) * 7 * daySeconds);
/**
 * 计算指定第week周的最后一天
 * 6:一周共7天,开始那一天加上6天得到最后一天
 */
var lastDayOfThisWeek = new Date(firstDayOfThisWeek.getTime() + 6 * daySeconds);
var startDayStr = firstDayOfThisWeek.getFullYear() + '-' + (firstDayOfThisWeek.getMonth() + 1) + '-' + firstDayOfThisWeek.getDate();
var endDayStr = lastDayOfThisWeek.getFullYear() + '-' + (lastDayOfThisWeek.getMonth() + 1) + '-' + lastDayOfThisWeek.getDate();
console.log('2017年第' + week + '周:' + startDayStr + '——' + endDayStr);

重要:国标每周第一天为周日,如果按国内每周第一天为周一算,计算日期结果应加一天。

希望是你想要的结果,如有疑问可追问。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式