Moment: 2.19.1:モーメント、モーメント-タイムゾーン、モーメント-営業日を組み合わせることはできなくなりました

作成日 2017å¹´10月12日  Â·  7コメント  Â·  ソース: moment/moment

以前は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が機能しなくなることです。

環境:

MacOS10.12.6上のChrome61
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

何か案は?

Bug Up-For-Grabs

最も参考になるコメント

近いうちに修正される予定ですか? または、これに対する既知の回避策はありますか? 2.18.1にとどまるのは、それほど長くはないかもしれません...

全てのコメント7件

私は似たようなものを得ていると思います。

この行で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にとどまるのは、それほど長くはないかもしれません...

この問題はMoment2.24.0とmoment-timezone0.5.26でも引き続き存在しますか? 私が行った場合:

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

moment.tzの使用に問題はないようです

それでも問題が解決しない場合は、再度開いてください。

これはまだ問題です。

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

そのため、バージョン2.24.0以降、タイムゾーンを設定できません。 これは本当に残念です。

このページは役に立ちましたか?
0 / 5 - 0 評価