我对 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");
一个想法是使用
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());