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

如何在jQuery/JavaScript中实现多语言自定义日期格式化

多语言自定义日期格式化实现方案

核心用浏览器原生Intl.DateTimeFormat API实现,无需额外引入第三方日期库,原生支持多语言规则适配,自动输出对应语言的星期、月份全称,比手动维护多语言映射表兼容性、准确性更好。


实现步骤

  • 先解析日期选择器返回的dd-mm-yyyy格式字符串,转换为合法的Date对象,注意JS中月份计数从0开始,转换时需要做偏移
  • 基于当前语言环境,通过Intl.DateTimeFormat提取对应语言的星期全称、月份全称
  • 针对不同语言的特殊格式规则做适配:
    • 丹麦语格式:在日期数字前加d.标识
    • 英语格式:给日期数字加对应序数词后缀(st/nd/rd/th)

完整可运行代码

直接替换原有逻辑即可:

// 英语序数词后缀计算工具
function getEnOrdinalSuffix(day) {
  if (day > 3 && day < 21) return 'th';
  switch (day % 10) {
    case 1: return 'st';
    case 2: return 'nd';
    case 3: return 'rd';
    default: return 'th';
  }
}

// 多语言日期格式化核心函数
function formatLocalDate(dateStr, locale = 'da') {
  // 拆分dd-mm-yyyy格式的原始日期
  const [day, month, year] = dateStr.split('-').map(Number);
  const dateObj = new Date(year, month - 1, day);

  // 获取对应语言的星期全称
  const weekday = new Intl.DateTimeFormat(locale, { weekday: 'long' }).format(dateObj);
  // 获取对应语言的月份全称
  const monthName = new Intl.DateTimeFormat(locale, { month: 'long' }).format(dateObj);

  // 按不同语言规则拼接结果
  if (locale === 'da') {
    return `${weekday} d. ${day} ${monthName} ${year}`;
  }
  if (locale === 'en') {
    return `${weekday} ${day}${getEnOrdinalSuffix(day)} ${monthName} ${year}`;
  }
  // 其他语言可以按需求在这里扩展规则
  return dateStr;
}

$(document).ready(function() {
  $('#BtnProceed').click(function() {
    // 原始日期值,和原有逻辑保持一致
    const rawDate = EndCalendar.getFormatedDate();
    // 可替换为实际的当前语言获取逻辑,比如读html标签的lang属性
    const currentLocale = document.documentElement.lang || 'da';
    // 格式化后的值
    const formattedDate = formatLocalDate(rawDate, currentLocale);
    
    $("#ConfirmEndDateHolder").text(formattedDate);
    // 如果是表单元素同步赋值value
    document.getElementById("ConfirmEndDateHolder").value = formattedDate;
  });    
});

使用说明

  • 语言参数可以直接读取页面<html>标签的lang属性,自动跟随页面语言切换,不需要手动硬编码
  • 如果需要支持更多语言,只需要在formatLocalDate函数里新增对应语言的拼接规则即可,星期和月份名称会由IntlAPI自动根据locale生成,不需要手动翻译
  • 所有现代浏览器(Chrome、Firefox、Safari 14+、Edge)都原生支持Intl.DateTimeFormat,不需要做额外兼容

内容的提问来源于stack exchange,提问作者Stig Kølbæk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:18:17