En testant avec du jasmin, j'obtiens cette erreur.
TypeError: moment.tz n'est pas une fonction
Mon code que j'essaie de tester est
let myDate = moment().tz(undefined, vm.timeZone).format('YYYY-MM-DD');
Si vous utilisez Node.js, vous utilisez peut-être accidentellement
const moment = require('moment');
// moment
au lieu de
const moment = require('moment-timezone');
// moment-timezone
Assurez-vous également d’avoir installé moment-timezone avec
npm install moment-timezone --save
Le bogue d'exiger un moment sans fuseau horaire pourrait se produire en installant le moment avec require('moment')
, puis en décidant de npm install moment-timezone
, Puis en oubliant de mettre à jour le require
.
Code ci-dessous pour moi ...
import moment from 'moment';
import 'moment-timezone';
J'ai rencontré ce problème aussi. Cela fonctionne pendant des années, mais après un refactor, cela ne fonctionne pas. Comme j'ai enquêté, [email protected]
dépend de moment@>=2.9.0
, qui pourrait être différent de moment
lui-même.
Dans mon cas, moment-timezone
les usages [email protected]
, et moment
la version elle-même est 2.18.1
. Causes moment-timezone
décoré mauvais version de moment
.
J'ai changé yarn.lock comme ceci:
[email protected]:
version "0.5.13"
resolved "https://arti-dev.ss.aws.fwmrm.net/api/npm/fw-npm/moment-timezone/-/moment-timezone-0.5.13.tgz#99ce5c7d827262eb0f1f702044177f60745d7b90"
integrity sha1-mc5cfYJyYusPH3AgRBd/YHRde5A=
dependencies:
moment ">= 2.9.0"
[email protected], moment@>= 2.9.0:
version "2.18.1"
resolved "https://arti-dev.ss.aws.fwmrm.net/api/npm/fw-npm/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f"
integrity sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=
moment
& moment-timezone
pourrait être utilisé comme substitut l'un de l'autre dans ce cas.