Moment: 2.19.1: não pode mais combinar momento, momento-fuso horário e momento-dias úteis

Criado em 12 out. 2017  ·  7Comentários  ·  Fonte: moment/moment

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?

Bug Up-For-Grabs

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 ...

Todos 7 comentários

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.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

nikocraft picture nikocraft  ·  3Comentários

Shoroh picture Shoroh  ·  3Comentários

Delgan picture Delgan  ·  3Comentários

RobinvanderVliet picture RobinvanderVliet  ·  3Comentários

tanepiper picture tanepiper  ·  3Comentários