Moment: isoWeekday(String) tidak konsisten dengan isoWeekday(Number) pada hari Minggu

Dibuat pada 28 Okt 2015  ·  6Komentar  ·  Sumber: moment/moment

isoWeekday(7) memberi saya hari Minggu dari minggu iso ini (Senin-Minggu)
isoWeekday("Minggu") memberi saya hari Minggu dari minggu iso sebelumnya

screen shot 2015-10-28 at 07 53 49

versi: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js

Bug Documentation Up-For-Grabs

Komentar yang paling membantu

Saya pikir begitulah penerapannya dan pahami apa yang Anda maksud sekarang, tetapi hasilnya agak kontra-intuitif dari sudut pandang saya. Dokumentasi mengatakan:

_Mendapatkan atau menetapkan hari ISO dalam seminggu dengan 1 menjadi Senin dan 7 menjadi Minggu._
moment().isoWeekday(1); // Monday
moment().isoWeekday(7); // Sunday

Jadi dalam minggu ISO, 7 selalu hari Minggu. Dokumentasi alias mengatakan:

_Pada 2.1.0, nama hari juga didukung. Ini diuraikan di lokal saat ini._
moment().day("Sunday");

Jadi dengan dua informasi itu mungkin sedikit membingungkan ketika Anda melakukannya:

moment().isoWeekday("Sunday")

Saya berharap itu memberikan hasil yang sama dengan moment().isoWeekday(7) .

Selain itu, jika Anda mengatakan "Minggu" adalah alias untuk 0, ini mungkin bertentangan dengan dokumentasi di sini:

_Jika lokal menetapkan Senin sebagai hari pertama dalam seminggu, moment().weekday(0) akan menjadi Senin. Jika hari Minggu adalah hari pertama dalam seminggu, moment().weekday(0) akan menjadi hari Minggu._

Tidak mencoba untuk membual, hanya ingin menjelaskan mengapa ini tidak jelas bagi saya. Mungkin catatan dalam dokumentasi yang menyatakan bahwa "minggu" adalah alias untuk 0 akan berguna.

Semua 6 komentar

Itu benar. Minggu ini adalah isoWeekday(0) dan "Minggu" adalah alias untuk 0, bukan 7.

Saya pikir begitulah penerapannya dan pahami apa yang Anda maksud sekarang, tetapi hasilnya agak kontra-intuitif dari sudut pandang saya. Dokumentasi mengatakan:

_Mendapatkan atau menetapkan hari ISO dalam seminggu dengan 1 menjadi Senin dan 7 menjadi Minggu._
moment().isoWeekday(1); // Monday
moment().isoWeekday(7); // Sunday

Jadi dalam minggu ISO, 7 selalu hari Minggu. Dokumentasi alias mengatakan:

_Pada 2.1.0, nama hari juga didukung. Ini diuraikan di lokal saat ini._
moment().day("Sunday");

Jadi dengan dua informasi itu mungkin sedikit membingungkan ketika Anda melakukannya:

moment().isoWeekday("Sunday")

Saya berharap itu memberikan hasil yang sama dengan moment().isoWeekday(7) .

Selain itu, jika Anda mengatakan "Minggu" adalah alias untuk 0, ini mungkin bertentangan dengan dokumentasi di sini:

_Jika lokal menetapkan Senin sebagai hari pertama dalam seminggu, moment().weekday(0) akan menjadi Senin. Jika hari Minggu adalah hari pertama dalam seminggu, moment().weekday(0) akan menjadi hari Minggu._

Tidak mencoba untuk membual, hanya ingin menjelaskan mengapa ini tidak jelas bagi saya. Mungkin catatan dalam dokumentasi yang menyatakan bahwa "minggu" adalah alias untuk 0 akan berguna.

Poin yang adil. Bisa jadi itu adalah alias untuk 7 atau 0 vs 7 harus berperilaku berbeda. Saya tidak cukup mendalami detailnya untuk memastikan apa yang benar untuk dilakukan, jadi saya akan membiarkan ini terbuka.

Melihat ini lagi. Dokumen hanya berbicara tentang dapat meneruskan "Sunday" sehubungan dengan fungsi day , bukan weekday atau isoWeekday . Mereka mungkin harus diperbarui.

Kemudian, saya setuju bahwa untuk isoWeekday , alias "Sunday" harus diubah agar sesuai dengan 7 , bukan 0 . Bahwa saat ini cocok dengan 0 adalah bug, karena itulah inti dari fungsi isoWeekday .

PR akan diterima. Pertama, kirimkan PR untuk memperbaiki perilaku fungsi isoWeekday . Kemudian, kirimkan PR terpisah ke https://github.com/moment/momentjs.com dengan perubahan dokumentasi.

Saya mencoba menghasilkan tanggal melalui nomor tahun, minggu, dan hari yaitu let date = moment().year(2019).isoWeek(1).isoWeekday(1).toDate(); //Mon Dec 31 2018 11:56:45 GMT+0100 (Central European Standard Time)

masalah yang saya hadapi ketika saya ingin mendapatkan tahun dan minggu dari tanggal yang dihasilkan moment(date).year() | moment(date).isoWeek() Saya salah. TIDAK YAKIN BAGAIMANA MENGATASINYA

Apakah halaman ini membantu?
0 / 5 - 0 peringkat