如何使用月份的法语名称获取特定日期的日数、月数和年份?

问题描述 投票:0回答:1

我对 JS Date 对象完全陌生,我需要使用月份的法语名称获取特定日期的日数、月数和年份。

我知道如何使用月份的英文名称来做到这一点:

const dt = new Date("12 may 1996"),
  day = dt.getDate(),
  month = dt.getMonth(),
  year = dt.getFullYear();

如何使用当月法语(没有数组或对象)来完成此任务? 例如

const dt = new Date("12 mai 1996");
javascript datetime
1个回答
0
投票

一个想法是使用

toLocaleDateString
传递您想要解码的区域设置,然后可以创建一个您可以查找以获取月份索引的数组。

function getMonths(locale) {
  let d = new Date(2000, 0, 1);
  const ret = [];
  for (let m = 0; m < 12;m ++) {
    d.setMonth(m);
    ret.push(d.toLocaleDateString(locale,{month: 'long'}));
  }
  return ret;
}


function decodeDayMonthYear(datestr, locale) {
  const months = getMonths(locale);
  const sections = datestr.split(' ');
  var d = new Date();
  d.setDate(sections[0]);
  d.setMonth(months.indexOf(sections[1]));
  d.setYear(sections[2]);
  return d;
}

const dt = decodeDayMonthYear('12 mai 1996', 'fr-FR');
console.log(dt.toLocaleDateString());
const dt2 = decodeDayMonthYear('25 décembre 2024', 'fr-FR');
console.log(dt2.toLocaleDateString());

© www.soinside.com 2019 - 2024. All rights reserved.