如何在JavaScript文件中导入Moment.js以获取用户本地时间?
解决Moment.js在JavaScript文件中无法调用的问题
别担心,你的问题其实很常见,主要是脚本加载顺序或者导入方式没搞对,我分两种场景给你讲清楚:
一、你当前使用的<script>标签直接引入场景(无需额外导入)
你已经在HTML里通过<script>引入了moment-with-locales.js,这种情况下不需要在JS文件里额外导入,但必须保证Moment.js的脚本在你的自定义JS文件之前加载。
举个正确的示例:
<!-- 先加载Moment.js,确保它先被浏览器解析 --> <script src="js/moment-with-locales.js"></script> <!-- 再加载你的自定义JavaScript文件 --> <script src="js/your-custom-script.js"></script>
如果你的脚本顺序反了,浏览器会先执行你的自定义JS代码,此时moment变量还未被定义,自然会报错。
另外可以检查下文件路径是否正确:打开浏览器开发者工具的「Network」标签,刷新页面,看看moment-with-locales.js的HTTP状态码是不是200,如果是404,说明你写的路径不对,得调整成正确的文件位置。
二、如果后续改用模块化开发方案(如Webpack/Vite)
要是你之后用构建工具开发,就得用模块化导入的方式:
- 先通过npm安装Moment.js:
npm install moment --save
- 在你的JS文件里导入:
// ES6 导入方式 import moment from 'moment'; // 如果需要本地化(比如中文),还要导入对应语言包 import 'moment/locale/zh-cn'; // 现在就能正常调用了 console.log(moment().format());
如果是Node.js环境用CommonJS规范,就这么写:
const moment = require('moment'); require('moment/locale/zh-cn'); console.log(moment().format());
按你的当前情况,先检查脚本加载顺序,调整后应该就能正常运行console.log(moment().format());啦!
内容的提问来源于stack exchange,提问作者user9621840
相关产品推荐
相关产品推荐

