При тестировании с использованием жасмина я получаю эту ошибку.
TypeError: момент.tz не является функцией
Мой код, который я пытаюсь проверить, - это
let myDate = moment().tz(undefined, vm.timeZone).format('YYYY-MM-DD');
При тестировании с использованием жасмина я получаю эту ошибку.
TypeError: момент.tz не является функцией
Мой код, который я пытаюсь проверить, - это
let myDate = moment().tz(undefined, vm.timeZone).format('YYYY-MM-DD');
Если вы используете 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
.
Ниже кода для меня...
import moment from 'moment';
import 'moment-timezone';
Я тоже столкнулся с этой проблемой. Работает годами, но после рефакторинга не работает. Как я уже исследовал, [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
можно использовать как замену друг другу.
Момент должен быть вызовом функции. Поэтому используйте let myDate = moment().tz(...)
Подробнее см. Https://momentjs.com/timezone/docs/.
РЕДАКТИРОВАТЬ
Вы также должны убедиться, что вы включаете расширение часового пояса в библиотеку моментов либо через правильную установку npm и требуете (для узла), либо правильные теги скриптов (для общего использования браузером). См. Связанные документы для включения библиотек/скриптов.