鉴于ISO 8601周数,您将如何获得该周内的日期

时间:2012-02-08 12:37:03

标签: javascript jquery

当用户选择日期时,我从jquery datepicker获得了一个星期数。但是现在我希望在那一周内得到所有的日子。

我可以添加一个点击事件,该事件循环显示所选日期所在的所有td,并抓住它的值,但我正在寻找更可靠的方式。

所以我的问题是,给定一个日期和一个星期数(iso 8601格式化),你怎么能用javascript导出那一周内的其他日期?

2 个答案:

答案 0 :(得分:7)

您可以通过使用星期几(getDay())减去所选日期日(getDate())来解决此问题。这样你就有了一周的第一天。然后你可以使用for循环直到7,以获得所有其他日子。你不需要周数。

var selected_date = $(this).datepicker('getDate'); //the date the user has clicked
var first_day_of_the_week = new Date(selected_date.getFullYear(),selected_date.getMonth(),selected_date.getDate() - selected_date.getDay() + 1);

var days = [];
for(var i = 0; i < 7; i++){
    var day = new Date(first_day_of_the_week.getFullYear(), 
        first_day_of_the_week.getMonth(),   
        first_day_of_the_week.getDate() + i);

    days.push(day);
}

console.log(days);

答案 1 :(得分:0)

这里有一个getWeek函数的JavaScript实现:

您可以在日期任何一天的七天开始运行,并保留周数相同的日期。