Moment: 2.19.1:不能再合并时刻,时刻时区和时刻营业日

创建于 2017-10-12  ·  7评论  ·  资料来源: moment/moment

我曾经能够合并momentmoment-timezonemoment-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将不再起作用。

环境:

MacOS 10.12.6上的Chrome 61
与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可能不再是一个选择...

您确定Moment 2.24.0和moment-timezone 0.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')//否

require('moment')。version // 2.26.0
require('moment')=== require('moment-timezone')//否

require('moment')。version // 2.27.0
require('moment')=== require('moment-timezone')//否

因此,从2.24.0版开始,我无法设置时区。 这真是个无赖。

此页面是否有帮助?
0 / 5 - 0 等级