我曾经能够合并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
将不再起作用。
环境:
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
有任何想法吗?
我相信我会得到类似的东西。
在此行上使用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版开始,我无法设置时区。 这真是个无赖。
最有用的评论
会很快修复吗? 还是有已知的解决方法? 停留在2.18.1可能不再是一个选择...