Moment: 2.19.1: Moment, Moment-Zeitzone und Moment-Geschäftstage können nicht mehr kombiniert werden

Erstellt am 12. Okt. 2017  ·  7Kommentare  ·  Quelle: moment/moment

Früher war ich in der Lage, moment , moment-timezone , moment-business-days (und moment-range zu kombinieren, aber das ist in dieser Situation kein Problem) ::

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

Dies funktionierte in allen Versionen vor dem Upgrade auf 2.19.1. Jetzt bekomme ich folgenden Fehler:

Uncaught TypeError: Cannot read property 'setDefault' of undefined

Und ich habe es auf moment.tz nicht mehr definiert wurde.

Das Problem ist, wenn ich import moment from moment-timezone dann moment-business-days nicht mehr funktioniert.

Umgebung:

Chrome 61 unter MacOS 10.12.6
Kompiliert mit Webpack

Debug-Ausgabe:

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

Irgendwelche Ideen?

Bug Up-For-Grabs

Hilfreichster Kommentar

Wird es bald behoben sein? oder gibt es dafür eine bekannte umgehung? Ein Aufenthalt in 2.18.1 ist möglicherweise keine Option mehr ...

Alle 7 Kommentare

Ich glaube, ich bekomme etwas Ähnliches.

Verwenden von import moment from 'moment-timezone' in dieser Zeile:

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

Wirft diesen Fehler:

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

Ein Rollback auf 2.18.1 funktioniert einwandfrei.

Ich sehe einen ähnlichen Fehler. moment-timezone sollte nur neue Methoden zu moment hinzufügen und dann das ursprüngliche moment -Objekt zurückgeben. Etwas in 2.19.1 führt jedoch dazu, dass moment-timezone eine völlig andere Instanz als moment zurückgibt.

require('moment').version // 2.18.1
require('moment') === require('moment-timezone') // true
require('moment').version // 2.19.1
require('moment') === require('moment-timezone') //false

Gleiches für 2.19.0 und 2.19.1

Wird es bald behoben sein? oder gibt es dafür eine bekannte umgehung? Ein Aufenthalt in 2.18.1 ist möglicherweise keine Option mehr ...

Sind Sie sicher, dass dieses Problem bei Moment 2.24.0 und Moment-Timezone 0.5.26 weiterhin besteht? Wenn ich mache:

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

Ich habe anscheinend kein Problem mit moment.tz

Bitte öffnen Sie erneut, wenn Sie noch Probleme haben.

Dies ist immer noch ein Problem.

erfordern ('Moment'). Version // 2.24.0
require ('moment') === require ('moment-timezone') // true

erfordern ('Moment'). Version // 2.25.3
require ('moment') === require ('moment-timezone') // false

erfordern ('Moment'). Version // 2.26.0
require ('moment') === require ('moment-timezone') // false

erfordern ('Moment'). Version // 2.27.0
require ('moment') === require ('moment-timezone') // false

Seit Version 2.24.0 kann ich keine Zeitzonen mehr einstellen. Das ist ein echter Mist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

vbullinger picture vbullinger  ·  3Kommentare

chitgoks picture chitgoks  ·  3Kommentare

slavafomin picture slavafomin  ·  3Kommentare

dogukankotan picture dogukankotan  ·  3Kommentare

M-Zuber picture M-Zuber  ·  3Kommentare