TypeError: Cannot read property 'setDefault' of undefined in momentjs,, moment.tz()

TypeError: Cannot read property 'setDefault' of undefined in momentjs,, moment.tz()

我在 npm 环境中有一个 JS 文件,它及其关联的 package.json 如下所示。 我收到以下错误,而 运行 文件 'app.js'.

TypeError: Cannot read property 'setDefault' of undefined

我无法访问 moment.tz(),因为它正在获取未定义的值。

app.js

import moment from "moment";

moment.tz.setDefault(moment.tz.guess());
console.log(moment().tz());

package.json

  "name": "folder_name_here",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "moment": "^2.29.1",
    "moment-timezone": "^0.5.33"
  }
}

您应该从 moment-timezone 而不是 moment 导入。

import moment from "moment-timezone";

此外,几乎没有理由这样做 moment.tz.setDefault(moment.tz.guess());,因为 Moment 已经理解了默认时区。如果那是您使用 Moment-Timezone 的唯一原因,那么请不要 - 只使用 Moment 本身。