TypeError: момент(). Tz не является функцией

При тестировании с использованием жасмина я получаю эту ошибку.

TypeError: момент.tz не является функцией

Мой код, который я пытаюсь проверить, - это

let myDate = moment().tz(undefined, vm.timeZone).format('YYYY-MM-DD'); 

Ответ 1

исправлять

Если вы используете Node.js, вы можете случайно использовать

const moment = require('moment'); //момент

вместо

const moment = require('moment-timezone'); //момент-время

Кроме того, убедитесь, что вы установили момент-часовой пояс с

npm install moment-timezone --save

объяснение

Ошибка требуемого момента без часовых поясов может произойти, установив момент с require('moment'), позже приняв решение об npm install moment-timezone в npm install moment-timezone, а затем забыв обновить require.

Ответ 2

Ниже кода для меня...

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

Ответ 3

Я тоже столкнулся с этой проблемой. Работает годами, но после рефакторинга не работает. Как я уже исследовал, [email protected] зависит от [email protected]>=2.9.0, который может отличаться от самого moment.

В моем случае moment-timezone использует [email protected], а сама версия moment - 2.18.1. Причины moment-timezone оформлены неверной версией moment.

Я изменил yarn.lock вот так:

[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], [email protected]>= 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 можно использовать как замену друг другу.

Ответ 4

Момент должен быть вызовом функции. Поэтому используйте let myDate = moment().tz(...)

Подробнее см. Https://momentjs.com/timezone/docs/.

РЕДАКТИРОВАТЬ

Вы также должны убедиться, что вы включаете расширение часового пояса в библиотеку моментов либо через правильную установку npm и требуете (для узла), либо правильные теги скриптов (для общего использования браузером). См. Связанные документы для включения библиотек/скриптов.