Раньше я мог комбинировать 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
Скомпилировано с помощью webpack
вывод отладки:
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 и моментом-часовым поясом 0.5.26? Если я сделаю:
require('moment-timezone');
var moment = require('moment-business-days');
У меня нет проблем с использованием moment.tz
Пожалуйста, повторно откройте, если у вас все еще есть проблемы.
Но это все еще проблема.
require ('moment'). version // 2.24.0
require ('moment') === require ('moment-timezone') // истина
require ('moment'). version // 2.25.3
require ('moment') === require ('moment-timezone') // ложь
require ('moment'). version // 2.26.0
require ('moment') === require ('moment-timezone') // ложь
require ('moment'). version // 2.27.0
require ('moment') === require ('moment-timezone') // ложь
Итак, начиная с версии 2.24.0 я не могу устанавливать часовые пояса. Это настоящий облом.
Самый полезный комментарий
это будет исправлено в ближайшее время? или есть известная работа для этого? оставаться на 2.18.1 может быть не лучшим вариантом ...