从日期获取月份名称

2022-08-29 22:13:22

如何在JavaScript中从此日期对象生成月份的名称(例如:Oct/October)?

var objDate = new Date("10/11/2009");

答案 1

较短版本:

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

const d = new Date();
document.write("The current month is " + monthNames[d.getMonth()]);

注意(2019-03-08) - 我最初在2009年写的这个答案已经过时了。请参阅David Storey的答案以获得更好的解决方案。


答案 2

现在可以使用 ECMAScript Internationalization API 执行此操作:

const date = new Date(2009, 10, 10);  // 2009-11-10
const month = date.toLocaleString('default', { month: 'long' });
console.log(month);

'long'使用月份的全名、短名称和更小的版本,例如按字母顺序排列的语言中的第一个字母。'short''narrow'

您可以将区域设置从浏览器更改为您喜欢的任何区域设置(例如),它将使用该语言/国家/地区的正确名称。'default''en-us'

使用api,您必须每次都传入区域设置和选项。如果您要在多个不同的日期使用相同的区域设置信息和格式设置选项,则可以改用:toLocaleStringIntl.DateTimeFormat

const formatter = new Intl.DateTimeFormat('fr', { month: 'short' });
const month1 = formatter.format(new Date());
const month2 = formatter.format(new Date(2003, 5, 12));
console.log(`${month1} and ${month2}`); // current month in French and "juin".

有关详细信息,请参阅我关于国际化 API 的博客文章