根据指定日期获取周日期
currentDate = moment().date();
// 19
是否可以在数组中获得工作日的范围,如此?
[16,17,18,19,20,21,22]
是否有一种简易方法或我可以使用的已知库来实现这一目标?
由于
答案 0 :(得分:2)
我不了解相关的图书馆,但有一种方法:
var currentDate = new Date; // get current date
var first = currentDate.getDate() - currentDate.getDay(); // First day
var last = first + 6; // last day
var list = [];
for (var i = first; i <= last; i++) {
list.push(i);
}
list
> [16, 17, 18, 19, 20, 21, 22]
答案 1 :(得分:2)
您可以做以下事情:
function getWeekDaysByWeekNumber(num) {
var week = moment().week(num);
var weekDays = [];
for(var idx=0; idx< 7; idx++) {
weekDays.push(week.day(idx).date());
}
return weekDays;
}
我刚尝试过,似乎工作正常。
说明:
week(num)
方法返回指向给定周数的时刻对象。例如,week(20)
会在20周内给我一个日期。
week.day(num)
给出了一周中给定的一天(0-6),其中0表示星期日,6表示星期六。
答案 2 :(得分:0)
Underscore.js具有range()
功能。那是你要的吗?
http://underscorejs.org/#range
您可以执行以下操作:
var RANGE_DISTANCE = 3;
var CENTER = 19;
_.range(CENTER - RANGE_DISTANCE, CENTER + RANGE_DISTANCE + 1)
你可以抽象出一个函数:
function generateRangeAroundCenter(var center, var range_distance) {
return _.range(center-range_distance, center+range_distance+1);
}
虽然仅仅为此导入下划线似乎有点过分。
我在这里看到了你想要的一些很好的例子: Does JavaScript have a method like "range()" to generate an array based on supplied bounds?
有些例子根本不使用图书馆,例如this。如果这有助于您,或者您正在寻找其他内容,请告诉我。
答案 3 :(得分:0)
用于订购日期的格式
["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
可以使用moment().day()
将当前工作日提升到相应的工作日工作日。如果今天是星期三,它将返回3。
根据这些值,您可以计算一周中的其余日期。