You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

首页出现moment.tz is not defined错误,插件脚本无法执行求助

解决"moment.tz is not defined"错误的方案

问题本质

该错误表明首页中moment-timezone库未被正确加载,或是加载顺序晚于依赖它的script.js,导致脚本执行时moment.tz对象不存在,进而中断核心逻辑运行。

排查与修复步骤

1. 修正PHP资源加载逻辑

  • 检查加载范围:确认moment-timezone库的加载代码没有被限制在预约页面,需确保首页也能加载该资源。
  • 调整加载顺序:必须保证依赖链顺序正确——先加载moment.js基础库,再加载moment-timezone.js,最后加载你的script.js。示例代码:
    // 加载moment基础库
    wp_enqueue_script('moment-js', 'path/to/moment.min.js', array(), '2.29.4', true);
    // 加载moment-timezone(依赖moment基础库)
    wp_enqueue_script('moment-timezone-js', 'path/to/moment-timezone.min.js', array('moment-js'), '0.5.43', true);
    // 加载核心脚本(依赖moment-timezone)
    wp_enqueue_script('booking-plugin-script', 'path/to/script.js', array('moment-timezone-js'), '1.0.0', true);
    
  • 移除不必要的条件判断:若PHP代码中存在仅在特定页面加载时区库的逻辑,需删除该限制,确保全局加载。

2. 前端脚本添加容错处理

在script.js中调用moment.tz前,先做存在性校验,避免脚本直接崩溃:

if (typeof moment !== 'undefined' && moment.tz) {
  // 你的moment.tz相关业务逻辑
  const userTimezone = moment.tz.guess();
  // ...其他代码
} else {
  console.warn('moment-timezone 库未正确加载');
  // 可选:添加降级处理逻辑,比如使用默认时区
}

3. 缓存与资源路径校验

  • 清除网站所有缓存(浏览器缓存、服务器缓存、CDN缓存),确保新的资源加载配置生效。
  • 在浏览器控制台的「网络」标签中,检查moment-timezone.js的请求状态,若返回404则修正资源路径。

内容的提问来源于stack exchange,提问作者user2126404

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:59:50