是否有可能在全日历中获取周数数组
is it possible to get the weeknumbers a an array in fullcalendar
在全日历中可以显示一个月的周数:http://fullcalendar.io/docs/display/weekNumberCalculation/ and http://fullcalendar.io/docs/display/weekNumbers/。
但是有什么方法可以让周数作为我的 javascript 使用范围吗?
/* 更新:现在有一个可能的解决方案 */
感谢@Cerbrus 没让我这么轻松:-)
我想出了一个使用力矩范围 (https://www.npmjs.com/package/moment-range) and the uniq-function from underscorejs (http://underscorejs.org/#uniq) 的解决方案。
我在下面突出显示了重要部分,我的整个解决方案可以在这个 plunk 中看到:http://plnkr.co/edit/pj56Qu5f5hDMJ86S4mQx?p=preview
viewRender: function (view, element) {
console.log(view.start.format());
console.log(view.end.format());
var dayRange=moment().range(view.start,view.end);
var weekRange=[];
dayRange.by('days', function(moment) {
console.log(moment.format()+" "+moment.isoWeek());
weekRange.push(moment.isoWeek());
});
weekRange=_.uniq(weekRange);
console.log(weekRange);
}
基于以上,我想稍微改变一下我的问题,请问以上是否是一个有效的解决方案,或者是否可以做得更好?
这应该更有效率。而且它不需要一堆额外的库。
从开始日期开始,每次迭代只增加一周。
viewRender: function (view, element) {
var weekNumbers = [];
for (var m = view.start; m.isBefore(view.end); m.add(1,'week')){
weekNumbers.push((m.isoWeek()%52)+1); //+1 to match FC's numbering.
// %52 is used to correct for weird behaviour around the newyear.
}
console.log(weekNumbers);
}
在全日历中可以显示一个月的周数:http://fullcalendar.io/docs/display/weekNumberCalculation/ and http://fullcalendar.io/docs/display/weekNumbers/。
但是有什么方法可以让周数作为我的 javascript 使用范围吗?
/* 更新:现在有一个可能的解决方案 */
感谢@Cerbrus 没让我这么轻松:-)
我想出了一个使用力矩范围 (https://www.npmjs.com/package/moment-range) and the uniq-function from underscorejs (http://underscorejs.org/#uniq) 的解决方案。 我在下面突出显示了重要部分,我的整个解决方案可以在这个 plunk 中看到:http://plnkr.co/edit/pj56Qu5f5hDMJ86S4mQx?p=preview
viewRender: function (view, element) {
console.log(view.start.format());
console.log(view.end.format());
var dayRange=moment().range(view.start,view.end);
var weekRange=[];
dayRange.by('days', function(moment) {
console.log(moment.format()+" "+moment.isoWeek());
weekRange.push(moment.isoWeek());
});
weekRange=_.uniq(weekRange);
console.log(weekRange);
}
基于以上,我想稍微改变一下我的问题,请问以上是否是一个有效的解决方案,或者是否可以做得更好?
这应该更有效率。而且它不需要一堆额外的库。
从开始日期开始,每次迭代只增加一周。
viewRender: function (view, element) {
var weekNumbers = [];
for (var m = view.start; m.isBefore(view.end); m.add(1,'week')){
weekNumbers.push((m.isoWeek()%52)+1); //+1 to match FC's numbering.
// %52 is used to correct for weird behaviour around the newyear.
}
console.log(weekNumbers);
}