Moment: 日曜日のisoWeekday(String)がisoWeekday(Number)と一致していません

作成日 2015年10月28日  ·  6コメント  ·  ソース: moment/moment

isoWeekday(7)は、このiso週の日曜日(月曜日から日曜日を教えてくれます
isoWeekday( "Sunday")は、前のiso週の日曜日を表示します

screen shot 2015-10-28 at 07 53 49

バージョン: https

Bug Documentation Up-For-Grabs

最も参考になるコメント

私はそれがどのように実装されているかを理解し、あなたが今何を意味しているのかを理解しましたが、結果は私の観点からは少し直感に反していました。 ドキュメントには次のように書かれています。

_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のエイリアスであると述べているドキュメントのメモが役立つでしょう。

全てのコメント6件

そのとおりです。 今週の日曜日は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の動作が異なる可能性があります。 私は詳細に十分に没頭していないので、正しいことを確認するのは難しいので、これは開いたままにしておきます。

これをもう一度見てください。 ドキュメントでは、 weekdayisoWeekdayではなく、 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()間違っています。 これを解決する方法がわからない

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

tanepiper picture tanepiper  ·  3コメント

slavafomin picture slavafomin  ·  3コメント

M-Zuber picture M-Zuber  ·  3コメント

danieljsinclair picture danieljsinclair  ·  3コメント

dogukankotan picture dogukankotan  ·  3コメント