2012-01-10 10 views
5

私は週数年で日付の日と最後の週の最初の週を取得したい....

のためにたとえば、私は

2(week),2012

のように入力を与えた場合、それはあなたがチェックし、トンできる値

2012-01-08 and 2012-01-14

+0

に変更されたい場合はどのように私は2013年に2を与える場合はどうですか?それは何を返すべきですか? –

+0

最初の日付と最後の日付の2週目を返します。 – balaphp

+0

@balaphp実際には、2013年の2週目の最初と最後の日付が返されます。 ? – Chandresh

答えて

7

はこれを試してみてください:

var year = 2012; 
var week = 2; 
var d = new Date("Jan 01, "+year+" 01:00:00"); 
var w = d.getTime() + 604800000 * (week-1); 
var n1 = new Date(w); 
var n2 = new Date(w + 518400000) 

n1は、週の最初の日は
n2は定数については週

の最後の日を含む含まれています
6.048億は、ミリ秒単位で1週間です
518400000は6日です

+3

n1は必ずしもmondayではなく、n2は必ず日曜日。 –

1

を返す必要があります下のリンクをクリックしてください。

How to get first and last day of the week in JavaScript

それは参考になりましよいでしょう。

ありがとうございました。

+0

私はそれを既にチェックしていましたが、日付による戻り値ですが、私は週番号と年によって同じ結果が欲しいです... – balaphp

3

@バーディールの答えに少し変わって、年の最初の日が日曜日(または月曜日)でない場合は0、結果は正しくありません。 最初の日の番号をマイナスしてください。

変更されたコードは

firstDay = new Date(2015, 0, 1).getDay(); 
console.log(firstDay); 
var year = 2015; 
var week = 67; 
var d = new Date("Jan 01, "+year+" 01:00:00"); 
var w = d.getTime() -(3600000*24*(firstDay-1))+ 604800000 * (week-1) 
var n1 = new Date(w); 
var n2 = new Date(w + 518400000) 

console.log(n1); 
console.log(n2); 

あなたが最初の日曜日には、(firstDay-1)

-1
dt = new Date(); 
    var firstDateOfWeek=(dt.setDate(dt.getDate()-dt.getDay())); 
    var lastDateOfWeek=(dt.setDate(dt.getDate()+6-dt.getDay()));