108 votes

TypeError: moment (). Tz n'est pas une fonction

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

197voto

Matt Goodrich Points 2011

Fix

Si vous êtes en utilisant Node.js, vous avez peut-être accidentellement à l'aide de

const moment = require('moment'); //moment

au lieu de

const moment = require('moment-timezone'); //moment-timezone

Aussi, assurez-vous que vous avez installé moment-timezone avec

npm install moment-timezone --save

Explication

Le bug de l'nécessitant moment sans les fuseaux horaires qui pourrait se produire par l'installation de moment avec require('moment'), plus tard, de décider d' npm install moment-timezone, puis d'oublier de mettre à jour l' require.

54voto

Purushottam Sadh Points 199

Code ci-dessous pour moi ...

 import moment from 'moment';
import 'moment-timezone';
 

5voto

Xu Tongbin Points 11

J'ai rencontré ce problème aussi. Il fonctionne depuis des années, mais après un peu de remaniement, il ne fonctionne pas. Comme je l'ai étudié, moment-timezone@0.5.13 dépend moment@>=2.9.0, qui peut être différent de moment lui-même.

Dans mon cas, moment-timezone utilise moment@2.24.0, et moment même version est - 2.18.1. Provoque moment-timezone décoré mauvaise version de moment.

J'ai changer de fil.verrouillage comme ceci:

moment-timezone@0.5.13:
  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"

moment@2.18.1, 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é substituer les uns aux autres dans ce cas.

-2voto

John Points 630

Moment devrait être un appel de fonction. Donc, utiliser l' let myDate = moment().tz(...)

Voir https://momentjs.com/timezone/docs/ pour plus de détails.

MODIFIER

Vous devez également vous assurer que vous êtes y compris le fuseau horaire de l'extension à l'instant de la bibliothèque, soit par le biais de la bonne mnp installer et nécessitent (par Nœud) ou le bon balises de script (pour l'utilisation du navigateur). Voir les documents pour les bibliothèques de scripts pour inclure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X