اعتدت أن أكون قادرًا على الجمع بين moment
، moment-timezone
، moment-business-days
(و moment-range
لكن هذا ليس مشكلة في هذه الحالة) ، مثل :
import 'moment-timezone';
import moment from 'moment-business-days';
import { extendMoment } from 'moment-range';
moment.locale('en-us', {
week: {
dow: 1, // Monday is the first day of the week
},
holidays: [
'2017-10-09',
'2017-12-25',
'2018-01-01',
'2018-04-02',
'2018-05-21',
'2018-06-25',
'2018-07-02',
'2018-09-03',
'2018-10-08',
'2018-12-24',
'2018-12-25',
],
holidayFormat: 'YYYY-MM-DD',
});
moment.tz.setDefault('America/Montreal');
export default extendMoment(moment);
نجح هذا في جميع الإصدارات قبل الترقية إلى 2.19.1. الآن أتلقى الخطأ التالي:
Uncaught TypeError: Cannot read property 'setDefault' of undefined
وقد تتبعت ذلك إلى moment.tz
لم يعد يتم تعريفه.
المشكلة هي إذا كنت import moment from moment-timezone
فلن يعمل moment-business-days
بعد الآن.
بيئة:
Chrome 61 على MacOS 10.12.6
تم تجميعها مع حزمة الويب
إخراج التصحيح:
Thu Oct 12 2017 12:29:48 GMT-0700 (PDT)
10/12/2017, 12:29:48 PM
420
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
2.19.1
أيه أفكار؟
أعتقد أنني أحصل على شيء مشابه.
باستخدام import moment from 'moment-timezone'
في هذا السطر:
var deadlineDisplay = moment.duration(deadlineSeconds, "seconds").format("h [hrs], m [min], s [sec]”)
يلقي هذا الخطأ:
Uncaught TypeError: _momentTimezone2.default.duration(...).format is not a function
التراجع إلى 2.18.1 يعمل بشكل جيد.
أرى خطأ مشابهًا. moment-timezone
بإضافة طرق جديدة إلى moment
، ثم إعادة الكائن الأصلي moment
. ومع ذلك ، فإن شيئًا ما في 2.19.1 يتسبب في إرجاع moment-timezone
مثيلًا مختلفًا تمامًا عن moment
.
require('moment').version // 2.18.1
require('moment') === require('moment-timezone') // true
require('moment').version // 2.19.1
require('moment') === require('moment-timezone') //false
نفس الشيء بالنسبة لكل من 2.19.0 و 2.19.1
هل سيتم إصلاحه في أي وقت قريب؟ أم أن هناك عملًا معروفًا لهذا الغرض؟ قد لا يكون البقاء على 2.18.1 خيارًا لفترة أطول ...
هل أنت متأكد من أن هذه المشكلة لا تزال قائمة مع Moment 2.24.0 و Moment-timezone 0.5.26؟ إذا فعلت:
require('moment-timezone');
var moment = require('moment-business-days');
لا يبدو أن لدي مشكلة في استخدام moment.tz
يرجى إعادة الفتح إذا كان لا يزال لديك مشاكل.
هذه لا تزال مشكلة ، مع ذلك.
تتطلب ("لحظة"). الإصدار // 2.24.0
تتطلب ('moment') === تتطلب ('moment-timezone') // صحيح
تتطلب ("لحظة"). الإصدار // 2.25.3
تتطلب ('moment') === تتطلب ('moment-timezone') // false
تتطلب ("لحظة"). الإصدار // 2.26.0
تتطلب ('moment') === تتطلب ('moment-timezone') // false
تتطلب ("لحظة"). الإصدار // 2.27.0
تتطلب ('moment') === تتطلب ('moment-timezone') // false
لذلك منذ الإصدار 2.24.0 لا يمكنني تعيين المناطق الزمنية. هذه مشكلة حقيقية.
التعليق الأكثر فائدة
هل سيتم إصلاحه في أي وقت قريب؟ أم أن هناك عملًا معروفًا لهذا الغرض؟ قد لا يكون البقاء على 2.18.1 خيارًا لفترة أطول ...