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

如何使用JavaScript获取希伯来日历日期并实现页面逻辑控制?

解决希伯来日历日期控制网页内容的问题

一、Switch语句失效的原因及修复

你通过Intl.DateTimeFormat获取的monthNumber是字符串类型(比如返回值是"1"),但你的switch分支里写的是数字1,类型不匹配导致无法命中分支。

有两种修复方式:

  • 方式1:将字符串转为数字
    修改获取月份的代码,把返回的字符串转成整数:

    var monthNumber = parseInt(new Intl.DateTimeFormat('en-u-ca-hebrew', { month: 'numeric' }).format(new Date()), 10);
    

    之后你的switch数字分支就能正常生效:

    switch (monthNumber) {
      case 1:
        monthName = "Tishrei";
        break;
      // 补充其他月份的分支...
    }
    
  • 方式2:分支使用字符串匹配
    保持monthNumber为字符串类型,把switch分支的数字改成字符串形式:

    switch (monthNumber) {
      case "1":
        monthName = "Tishrei";
        break;
      // 补充其他月份的分支...
    }
    

二、确认希伯来月份的英文拼写

要知道Intl.DateTimeFormat返回的月份英文拼写,直接打印测试即可。比如用month: 'long'参数获取完整名称:

// 获取希伯来月份的英文全称,控制台查看拼写
var monthName = new Intl.DateTimeFormat('en-u-ca-hebrew', { month: 'long' }).format(new Date());
console.log(monthName);

也可以用month: 'short'获取缩写形式,这样就能精准拿到API使用的拼写,避免拼写差异问题。

三、完整示例代码

结合需求的完整实现示例:

function toggleContentByHebrewMonth() {
  // 方式1:用月份数字匹配
  const monthNumber = parseInt(new Intl.DateTimeFormat('en-u-ca-hebrew', { month: 'numeric' }).format(new Date()), 10);
  let targetClass = '';

  switch (monthNumber) {
    case 1:
      targetClass = 'Tishrei';
      break;
    case 2:
      targetClass = 'Cheshvan';
      break;
    // 补充剩余月份的分支...
    default:
      targetClass = '';
  }

  // 隐藏所有月份内容,显示目标月份
  $('.hebrew-month-content').css('display', 'none');
  targetClass && $(`.${targetClass}`).css('display', 'block');

  // 方式2:直接用月份名称匹配(确认拼写后使用)
  /*
  const monthName = new Intl.DateTimeFormat('en-u-ca-hebrew', { month: 'long' }).format(new Date());
  $('.hebrew-month-content').css('display', 'none');
  $(`.${monthName}`).css('display', 'block');
  */
}

// 执行函数
toggleContentByHebrewMonth();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:35:27