Eu costumava ser capaz de combinar moment
, moment-timezone
, moment-business-days
(e moment-range
mas esse não é um problema nesta situação), assim :
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);
Isso funcionou em todas as versões antes de atualizar para 2.19.1. Agora recebo o seguinte erro:
Uncaught TypeError: Cannot read property 'setDefault' of undefined
E eu rastreei moment.tz
não estando mais definido.
O problema é se I import moment from moment-timezone
então moment-business-days
não funcionará mais.
Meio Ambiente:
Chrome 61 no MacOS 10.12.6
Compilado com webpack
saída de depuração:
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
Alguma ideia?
Eu acredito que estou recebendo algo semelhante.
Usando import moment from 'moment-timezone'
nesta linha:
var deadlineDisplay = moment.duration(deadlineSeconds, "seconds").format("h [hrs], m [min], s [sec]”)
Lança este erro:
Uncaught TypeError: _momentTimezone2.default.duration(...).format is not a function
Reverter para 2.18.1 funciona bem.
Estou vendo um erro semelhante. moment-timezone
deve apenas adicionar novos métodos a moment
, e então retornar o objeto moment
. No entanto, algo em 2.19.1 está fazendo com que moment-timezone
retorne uma instância completamente diferente de 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
O mesmo para 2.19.0 e 2.19.1
vai ser consertado em breve? ou existe uma solução alternativa conhecida para isso? permanecer em 2.18.1 pode não ser uma opção por muito mais tempo ...
Tem certeza de que este problema ainda existe com Moment 2.24.0 e moment-timezone 0.5.26? Se eu fizer:
require('moment-timezone');
var moment = require('moment-business-days');
Não pareço ter problemas para usar o moment.tz
Por favor, abra novamente se você ainda tiver problemas.
Isso ainda é um problema, embora.
require ('moment'). versão // 2.24.0
require ('moment') === require ('moment-timezone') // verdadeiro
require ('moment'). versão // 2.25.3
require ('moment') === require ('moment-timezone') // false
require ('moment'). versão // 2.26.0
require ('moment') === require ('moment-timezone') // false
require ('moment'). versão // 2.27.0
require ('moment') === require ('moment-timezone') // false
Portanto, desde a versão 2.24.0 não consigo definir fusos horários. Esta é uma verdadeira chatice.
Comentários muito úteis
vai ser consertado em breve? ou existe uma solução alternativa conhecida para isso? permanecer em 2.18.1 pode não ser uma opção por muito mais tempo ...