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

如何使用法语月份名称从指定日期提取日、月、年数字?

用法语月份字符串提取日期信息(无数组/对象依赖)

直接使用new Date("12 mai 1996")存在兼容性问题——JS引擎对非英语日期字符串的解析规则没有统一标准,部分环境可能返回无效日期(Invalid Date),所以不能直接这么用。

要在不使用数组或对象的前提下实现需求,可以通过字符串替换,把法语月份名称替换为对应的英语名称,再交给Date构造函数解析,之后就能正常提取日、月、年信息:

const frenchDateStr = "12 mai 1996";
// 替换法语月份为英语,覆盖完整名称和常见缩写
const englishDateStr = frenchDateStr
  .replace("janvier", "January")
  .replace("février", "February")
  .replace("mars", "March")
  .replace("avril", "April")
  .replace("mai", "May")
  .replace("juin", "June")
  .replace("juillet", "July")
  .replace("août", "August")
  .replace("septembre", "September")
  .replace("octobre", "October")
  .replace("novembre", "November")
  .replace("décembre", "December")
  .replace("jan", "Jan")
  .replace("fév", "Feb")
  .replace("mar", "Mar")
  .replace("avr", "Apr")
  .replace("mai", "May")
  .replace("jun", "Jun")
  .replace("jul", "Jul")
  .replace("aoû", "Aug")
  .replace("sep", "Sep")
  .replace("oct", "Oct")
  .replace("nov", "Nov")
  .replace("déc", "Dec");

const dt = new Date(englishDateStr);
const day = dt.getDate(); // 提取日期(1-31)
const month = dt.getMonth(); // 提取月份(0-11,0对应1月)
const year = dt.getFullYear(); // 提取年份(4位数字)

console.log(day, month + 1, year); // 输出 12 5 1996(如果需要1-based月份,加1即可)

注意:getMonth()返回的是0起始的数字(0代表1月,11代表12月),如果需要和日常习惯一致的1起始月份,记得给结果加1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:57:19