无法在Javascript中正确获取月份名称
问题描述:
试图从JS Date()对象获取月份名称,我得到了'March'和'February'的副本。怎么来的?这里是我的片断:无法在Javascript中正确获取月份名称
for (var i = 0; i < 12; i++)
{
console.log(new Date(new Date().setMonth(i)).toLocaleString('en-us', { month: 'long' }));
}
控制台输出:
January
2 March
April
May
June
July
August
September
October
November
December
谢谢!
答
如果要获得您计划要做的一年中的所有月份,那么您必须将所有创建日期的日期设置为1,因为如今天(截至发送此答案的那天)是30日,不存在月30日,这就是为什么它被重复行军,所以只设置日期为您的代码1,它应该做工精细,
for (var i = 0; i < 12; i++){
console.log(new Date(new Date(new Date().setDate(1)).setMonth(i)).toLocaleString('en-us', { month: 'long' }));
}
ofcourse,代码将越来越相当凌乱的所有new Date()
的
+0
谢谢!好吧,这打破了目的,月份名称显示正确,但是从特定月份和特定年份获得天数时会出现乱七八糟的情况。 – Comi9
+1
或者你可以直接写'new Date(2000,i,1).toLocaleString(...)'。 –
因为没有二月三十日... – Sirko
将内部'new Date()'更改为'New Date('01/01')'它会将日期对象初始化为1月1日,然后再设置月份,而不再依赖今天的日期。 – Archer
后天运行;) – bugwheels94