2012-02-08 6 views
3

ユーザーが日付を選択すると、jquery datepickerから週番号が取得されます。しかし今、私はその週の中ですべての日を取りたいです。ISO 8601週番号を指定すると、その週内の日付はどのように取得されますか?

私は、選択された日付のtrのすべてのtdをループするクリックイベントを追加して、値を取得しますが、私はより信頼性の高い方法を探しています。

私の質問は、特定の日付と週番号(iso 8601フォーマット)が与えられているので、javascriptを使ってその週内の他の日付をどのように引き出すことができますか?

+0

ISO 8601フォーマットの週はどのように見えますか? – rekire

+0

申し訳ありませんが、Iso 8601は曜日番号ではなく日付を書いています。だから:年月日 – Jareish

答えて

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); 
+0

ありがとうございました! – Jareish

0

ここgetWeek機能のJavaScript実装があります:

あなたは七日の日付にあなたの日付のいずれかの側にそれを実行して、週数日を保つことができます同じです。

+0

これは、私がすべてのDOM要素をループして日付を減算して、その週内であるかどうかを比較する必要があります。 – Jareish

+0

ああ、いいえ - 私はあなたがあなたの既存の日付オブジェクトから新しいDateオブジェクトを作成できることを意味しました。 'var one_day_earlier = new Date; one_day_earlier.setDate(existing_date.getDate() - 1); '。 http://stackoverflow.com/questions/1187824/finding-date-by-subtracting-x-number-of-days-from-a-particular-date-in-javascrip –

関連する問題