Moment: isoWeekday (سلسلة) غير متوافقة مع isoWeekday (رقم) يوم الأحد

تم إنشاؤها على ٢٨ أكتوبر ٢٠١٥  ·  6تعليقات  ·  مصدر: moment/moment

يعطيني isoWeekday (7) يوم الأحد من هذا الأسبوع iso (الاثنين - الأحد)
isoWeekday ("الأحد") يعطيني يوم الأحد من أسبوع iso السابق

screen shot 2015-10-28 at 07 53 49

الإصدار: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js

Bug Documentation Up-For-Grabs

التعليق الأكثر فائدة

لقد اكتشفت أن هذه هي الطريقة التي تم تنفيذها وفهمت ما تعنيه الآن ، لكن النتيجة كانت غير بديهية بعض الشيء من وجهة نظري الوثائق تقول:

_ الحصول على أو تحديد يوم ISO من الأسبوع بحيث يكون 1 يوم الإثنين و 7 يوم الأحد.
moment().isoWeekday(1); // Monday
moment().isoWeekday(7); // Sunday

لذلك في أسبوع ISO ، يكون الرقم 7 دائمًا يوم الأحد. يقول توثيق الاسم المستعار:

_ اعتبارًا من 2.1.0 ، يتم أيضًا دعم اسم اليوم. يتم تحليل هذا في لغة اللحظة الحالية.
moment().day("Sunday");

لذلك مع هاتين المعلومتين ، قد يكون الأمر مربكًا بعض الشيء عندما تفعل:

moment().isoWeekday("Sunday")

أتوقع أن تعطي نفس النتيجة مثل moment().isoWeekday(7) .

بصرف النظر عن ذلك ، إذا قلت أن "الأحد" اسم مستعار لـ 0 ، فقد يتعارض هذا مع الوثائق هنا:

_إذا قامت الإعدادات المحلية بتعيين يوم الاثنين باعتباره اليوم الأول من الأسبوع ، فسيكون moment().weekday(0) يوم الاثنين. إذا كان الأحد هو أول أيام الأسبوع ، فسيكون الأحد هو moment().weekday(0) ._

لا تحاول التباهي ، فقط أريد أن أشرح سبب عدم وضوح ذلك بالنسبة لي. ربما تكون ملاحظة في الوثائق تفيد بأن "الأحد" اسم مستعار لـ 0 ستكون مفيدة.

ال 6 كومينتر

هذا صحيح. هذا الأحد هو isoWeekday(0) و "Sunday" هو اسم مستعار لـ 0 ، وليس 7.

لقد اكتشفت أن هذه هي الطريقة التي تم تنفيذها وفهمت ما تعنيه الآن ، لكن النتيجة كانت غير بديهية بعض الشيء من وجهة نظري الوثائق تقول:

_ الحصول على أو تحديد يوم ISO من الأسبوع بحيث يكون 1 يوم الإثنين و 7 يوم الأحد.
moment().isoWeekday(1); // Monday
moment().isoWeekday(7); // Sunday

لذلك في أسبوع ISO ، يكون الرقم 7 دائمًا يوم الأحد. يقول توثيق الاسم المستعار:

_ اعتبارًا من 2.1.0 ، يتم أيضًا دعم اسم اليوم. يتم تحليل هذا في لغة اللحظة الحالية.
moment().day("Sunday");

لذلك مع هاتين المعلومتين ، قد يكون الأمر مربكًا بعض الشيء عندما تفعل:

moment().isoWeekday("Sunday")

أتوقع أن تعطي نفس النتيجة مثل moment().isoWeekday(7) .

بصرف النظر عن ذلك ، إذا قلت أن "الأحد" اسم مستعار لـ 0 ، فقد يتعارض هذا مع الوثائق هنا:

_إذا قامت الإعدادات المحلية بتعيين يوم الاثنين باعتباره اليوم الأول من الأسبوع ، فسيكون moment().weekday(0) يوم الاثنين. إذا كان الأحد هو أول أيام الأسبوع ، فسيكون الأحد هو moment().weekday(0) ._

لا تحاول التباهي ، فقط أريد أن أشرح سبب عدم وضوح ذلك بالنسبة لي. ربما تكون ملاحظة في الوثائق تفيد بأن "الأحد" اسم مستعار لـ 0 ستكون مفيدة.

نقطة عادلة. قد يكون اسمًا مستعارًا لـ 7 أو أن 0 مقابل 7 يجب أن يتصرف بشكل مختلف. لست منغمسًا بدرجة كافية في التفاصيل لأتأكد من الشيء الصحيح الذي يجب فعله ، لذلك سأترك هذا مفتوحًا.

نلقي نظرة على هذا مرة أخرى. تتحدث المستندات فقط عن قدرتها على اجتياز "Sunday" فيما يتعلق بوظيفة day ، وليس weekday أو isoWeekday . ربما ينبغي تحديثها.

بعد ذلك ، أوافق على أنه بالنسبة إلى isoWeekday ، يجب تغيير الاسم المستعار "Sunday" ليطابق 7 ، وليس 0 . كونه يطابق حاليًا 0 هو خطأ ، لأن هذا هو بيت القصيد من وظيفة isoWeekday .

العلاقات العامة ستكون موضع ترحيب. أولاً ، أرسل PR لإصلاح سلوك الوظيفة isoWeekday . بعد ذلك ، أرسل بيانًا عامًا منفصلاً إلى 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 التقييمات