【发布时间】:2018-07-25 09:34:20
【问题描述】:
如何获取指定周数组中的日期?
【问题讨论】:
-
我不明白这个问题。 “使用周数在一周中的总日期”是什么意思?一周不总是有 7 天吗?
-
我知道还有 7 天。但我想要特定一周的日期。假设如果我考虑本周我想要 [22,23,24,25,26,27,28] 像这样..
标签: javascript angular momentjs
如何获取指定周数组中的日期?
【问题讨论】:
标签: javascript angular momentjs
要使用 weekNumber 获取星期几,请设置星期数,获取 startOf 星期并迭代以获取每个日期。如果未指定周,则使用一年中的第一周。
var dateformat = "YYYY/MM/DD";
function getWeekDaysByWeekNumber(weeknumber)
{
var date = moment().isoWeek(weeknumber||1).startOf("week"), weeklength=7, result=[];
while(weeklength--)
{
result.push(date.format(dateformat));
date.add(1,"day")
}
return result;
}
console.log(getWeekDaysByWeekNumber())
console.log(getWeekDaysByWeekNumber(2))
console.log(getWeekDaysByWeekNumber(25))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
要使用日期获取星期几,请设置 startOf 周并迭代以获取每个日期。如果未指定日期,则使用today 的日期。
var dateformat = "YYYY/MM/DD";
function getWeekDaysByDate(date)
{
var date = date ? moment(date,dateformat) : moment(), weeklength=7, result=[];
date = date.startOf("week")
while(weeklength--)
{
result.push(date.format(dateformat));
date.add(1,"day")
}
return result;
}
console.log(getWeekDaysByDate())
console.log(getWeekDaysByDate("2018/07/18"))
console.log(getWeekDaysByDate("2018/06"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
【讨论】:
2015 年第 16 周的所有日子 (ISO):
let days = [1, 2, 3, 4, 5, 6, 7]
.map(d => moment('2015-16-' + d, 'YYYY-W-E'));
console.log(days);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script>
使用YYYY-w-e 进行区域敏感周处理。
【讨论】: