Moment: 2.19.1: ne peut plus combiner moment, moment-fuseau horaire et moment-jours ouvrables

Créé le 12 oct. 2017  ·  7Commentaires  ·  Source: moment/moment

J'étais capable de combiner moment , moment-timezone , moment-business-days (et moment-range mais ce n'est pas un problème dans cette situation), comme ça :

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);

Cela fonctionnait dans toutes les versions avant la mise à niveau vers la 2.19.1. Maintenant, j'obtiens l'erreur suivante:

Uncaught TypeError: Cannot read property 'setDefault' of undefined

Et je l'ai retracé jusqu'à moment.tz n'était plus défini.

Le problème est que si je import moment from moment-timezone alors moment-business-days ne fonctionnera plus.

Environnement:

Chrome 61 sur MacOS 10.12.6
Compilé avec webpack

sortie de débogage:

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

Des idées?

Bug Up-For-Grabs

Commentaire le plus utile

va-t-il être corrigé de sitôt? ou y a-t-il une solution connue pour cela? rester sur 2.18.1 pourrait ne pas être une option plus longtemps ...

Tous les 7 commentaires

Je crois que j'obtiens quelque chose de similaire.

En utilisant import moment from 'moment-timezone' sur cette ligne:

var deadlineDisplay = moment.duration(deadlineSeconds, "seconds").format("h [hrs], m [min], s [sec]”)

Lève cette erreur:

Uncaught TypeError: _momentTimezone2.default.duration(...).format is not a function

Revenir à 2.18.1 cela fonctionne très bien.

Je vois une erreur similaire. moment-timezone devrait simplement ajouter de nouvelles méthodes à moment , puis renvoyer l'objet moment . Cependant, quelque chose dans 2.19.1 fait que moment-timezone renvoie une instance complètement différente 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

Idem pour 2.19.0 et 2.19.1

va-t-il être corrigé de sitôt? ou y a-t-il une solution connue pour cela? rester sur 2.18.1 pourrait ne pas être une option plus longtemps ...

Êtes-vous sûr que ce problème existe toujours avec Moment 2.24.0 et moment-timezone 0.5.26? Si je fais:

require('moment-timezone');
var moment = require('moment-business-days');

Je ne semble pas avoir de problème avec moment.tz

Veuillez rouvrir si vous rencontrez toujours des problèmes.

C'est toujours un problème, tho.

require ('moment'). version // 2.24.0
require ('moment') === require ('moment-timezone') // true

require ('moment'). version // 2.25.3
require ('moment') === require ('moment-timezone') // false

require ('moment'). version // 2.26.0
require ('moment') === require ('moment-timezone') // false

require ('moment'). version // 2.27.0
require ('moment') === require ('moment-timezone') // false

Donc, depuis la version 2.24.0, je ne peux pas définir de fuseaux horaires. C'est vraiment décevant.

Cette page vous a été utile?
0 / 5 - 0 notes