私は日付を受け取って、その日が月曜日から日曜日までの週から毎日返す関数を持っています。配列を返すでしょう日曜日に月曜日を取得する
input into function: 2017-08-24T19:37:09-04:00
:例えばだから、
function getMonday(d) {
d = new Date(d);
var day = d.getDay() || 7;
var diff = d.getDate() - day + (day == 0 ? -6:1);
for (var i = 0; i <= 6; i++) {
var date = new Date(d.setDate(diff+i));
dateRange.push(moment(date).format());
console.log(dateRange);
}
}
:ここ
[
"2017-08-21T19:37:09-04:00",
"2017-08-22T19:37:09-04:00",
"2017-08-23T19:37:09-04:00",
"2017-08-24T19:37:09-04:00",
"2017-08-25T19:37:09-04:00",
"2017-08-26T19:37:09-04:00",
"2017-08-27T19:37:09-04:00"
]
は、私がこれまでに(私はmomentjs
を使用しています)したコードです
これは問題なく動作しますが、入力次のとおりです。この場合getMonday(new Date('2017-07-31T19:44:06-04:00'))
...
それが返されます。それは数ヶ月に増加していると明らかに間違っている
2017-07-31T19:44:06-04:00 2017-08-01T19:44:06-04:00 2017-09-02T19:44:06-04:00 2017-10-04T19:44:06-04:00 2017-11-04T19:44:06-04:00 2017-12-06T19:44:06-04:00 2018-01-06T19:44:06-04:00
を...
何が起こっていますか?私は行方不明だと簡単にこれを修正する方法はありますか?
ありがとうございます!
非常に素晴らしく、きれいなコード..私はちょうど問題を抱えている '入力=「2017-08-27T19する必要があります-04:00''それはその特定の週の 'monday-sunday'を返さないので、それは来週のそれを示す...どんな考えですか? –
@ JaneDoeああ、問題は、私のコードは、週の最初の日ではなく、最後の日と仮定しています。私は何ができるかを見てみよう。 – Phil
@JaneDoeはすごくいいはずだ – Phil