يعطيني isoWeekday (7) يوم الأحد من هذا الأسبوع iso (الاثنين - الأحد)
isoWeekday ("الأحد") يعطيني يوم الأحد من أسبوع iso السابق
الإصدار: https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js
هذا صحيح. هذا الأحد هو 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()
لقد فهمت الخطأ. لست متأكدًا من كيفية حل هذا
التعليق الأكثر فائدة
لقد اكتشفت أن هذه هي الطريقة التي تم تنفيذها وفهمت ما تعنيه الآن ، لكن النتيجة كانت غير بديهية بعض الشيء من وجهة نظري الوثائق تقول:
لذلك في أسبوع ISO ، يكون الرقم 7 دائمًا يوم الأحد. يقول توثيق الاسم المستعار:
لذلك مع هاتين المعلومتين ، قد يكون الأمر مربكًا بعض الشيء عندما تفعل:
moment().isoWeekday("Sunday")
أتوقع أن تعطي نفس النتيجة مثل
moment().isoWeekday(7)
.بصرف النظر عن ذلك ، إذا قلت أن "الأحد" اسم مستعار لـ 0 ، فقد يتعارض هذا مع الوثائق هنا:
_إذا قامت الإعدادات المحلية بتعيين يوم الاثنين باعتباره اليوم الأول من الأسبوع ، فسيكون
moment().weekday(0)
يوم الاثنين. إذا كان الأحد هو أول أيام الأسبوع ، فسيكون الأحد هوmoment().weekday(0)
._لا تحاول التباهي ، فقط أريد أن أشرح سبب عدم وضوح ذلك بالنسبة لي. ربما تكون ملاحظة في الوثائق تفيد بأن "الأحد" اسم مستعار لـ 0 ستكون مفيدة.