gpt4 book ai didi

javascript - 检查月份和年份给出的结果不正确

转载 作者:行者123 更新时间:2023-12-02 19:09:54 25 4
gpt4 key购买 nike

我正在使用下面的代码来检查该月的日期,但它不起作用。请帮我解决这个问题

  function daysInMonth(month, year) {
var length = new Date(year, month, 0).getDate();
for(var i = 1; i < = length; i++)
{
console.log(new Date(year,month,i).getDay());
}
};

here是 fiddle 。它返回给我不正确的结果..

最佳答案

正确的代码如下:

function daysInMonth( month, year ) {
var day;
for( var i = 1 ; i <= new Date( year, month, 0 ).getDate() ; i++ ) {
day = new Date( year, month-1, i );
console.log( day, day.getDay() );
}

};

daysInMonth( 12, 2012 );

该问题是由于月份索引为 0-11 造成的。假设一周的第一天是星期日:

daysInMonth( 12, 2012 );

Sat Dec 01 2012 00:00:00 GMT+0100 (CET) 6 //Sat
Sun Dec 02 2012 00:00:00 GMT+0100 (CET) 0 //Sun
Mon Dec 03 2012 00:00:00 GMT+0100 (CET) 1 //Mon
...
Mon Dec 31 2012 00:00:00 GMT+0100 (CET) 1 //Mon
<小时/>

替代的、更短的代码:

function daysInMonth( month, year ) {
for( var i = new Date( year, month, 0 ).getDate(), d = new Date( year, month-1, 1 ).getDay() ; i-- ; )
console.log( d++ % 7 );
};

关于javascript - 检查月份和年份给出的结果不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13892453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com