そのとおりです。 今週の日曜日はisoWeekday(0)
、「Sunday」は7ではなく0のエイリアスです。
私はそれがどのように実装されているかを理解し、あなたが今何を意味しているのかを理解しましたが、結果は私の観点からは少し直感に反していました。 ドキュメントには次のように書かれています。
_ISOの曜日を取得または設定します。1は月曜日、7は日曜日です。_
moment().isoWeekday(1); // Monday
moment().isoWeekday(7); // Sunday
したがって、ISO週では、7は常に日曜日です。 エイリアスのドキュメントには次のように書かれています。
_2.1.0以降、曜日名もサポートされます。 これは、現時点の現在のロケールで解析されます。_
moment().day("Sunday");
したがって、これら2つの情報を使用すると、次のようにすると少し混乱する可能性があります。
moment().isoWeekday("Sunday")
moment().isoWeekday(7)
と同じ結果になると思います。
それとは別に、「Sunday」が0のエイリアスであると言う場合、これは次のドキュメントと競合する可能性があります。
_ロケールが月曜日を週の最初の曜日として割り当てている場合、 moment().weekday(0)
は月曜日になります。 日曜日が週の最初の日である場合、 moment().weekday(0)
は日曜日になります。_
自慢しようとはせず、なぜこれが私にとって不明確だったのかを説明したいだけです。 たぶん、「日曜日」は0のエイリアスであると述べているドキュメントのメモが役立つでしょう。
フェアポイント。 7のエイリアスであるか、0と7の動作が異なる可能性があります。 私は詳細に十分に没頭していないので、正しいことを確認するのは難しいので、これは開いたままにしておきます。
これをもう一度見てください。 ドキュメントでは、 weekday
やisoWeekday
ではなく、 day
関数に関して"Sunday"
を渡すことができることについてのみ説明しています。 おそらく更新する必要があります。
次に、 isoWeekday
場合、 7
ではなく0
7
に一致するように"Sunday"
エイリアスを変更する必要があることに同意します。 現在0
と一致しているのはバグです。これが、 isoWeekday
関数の要点だからです。
PRは大歓迎です。 まず、PRを送信して、 isoWeekday
関数の動作を修正します。 次に、ドキュメントを変更して、別のPRをhttps://github.com/moment/momentjs.comに送信し
年、週、日の番号、つまりlet date = moment().year(2019).isoWeek(1).isoWeekday(1).toDate();
//Mon Dec 31 2018 11:56:45 GMT+0100 (Central European Standard Time)
日付を生成しようとしています。
生成された日付から年と週を取得したいときに直面している問題moment(date).year() | moment(date).isoWeek()
間違っています。 これを解決する方法がわからない
最も参考になるコメント
私はそれがどのように実装されているかを理解し、あなたが今何を意味しているのかを理解しましたが、結果は私の観点からは少し直感に反していました。 ドキュメントには次のように書かれています。
したがって、ISO週では、7は常に日曜日です。 エイリアスのドキュメントには次のように書かれています。
したがって、これら2つの情報を使用すると、次のようにすると少し混乱する可能性があります。
moment().isoWeekday("Sunday")
moment().isoWeekday(7)
と同じ結果になると思います。それとは別に、「Sunday」が0のエイリアスであると言う場合、これは次のドキュメントと競合する可能性があります。
_ロケールが月曜日を週の最初の曜日として割り当てている場合、
moment().weekday(0)
は月曜日になります。 日曜日が週の最初の日である場合、moment().weekday(0)
は日曜日になります。_自慢しようとはせず、なぜこれが私にとって不明確だったのかを説明したいだけです。 たぶん、「日曜日」は0のエイリアスであると述べているドキュメントのメモが役立つでしょう。