答えて
// Month is 1-indexed (January is 1, February is 2, etc).
function daysInMonth (month, year) {
return new Date(year, month, 0).getDate();
}
// July
daysInMonth(7,2009); // 31
// February
daysInMonth(2,2009); // 28
daysInMonth(2,2008); // 29
次は
// pass in any date as parameter anyDateInMonth
function daysInMonth(anyDateInMonth) {
return new Date(anyDateInMonth.getYear(),
anyDateInMonth.getMonth()+1,
0).getDate();}
私はそれを:daysInMonth(new Date())と呼ぶときにエラーを投げます。 – CyberFox
'++ anyDateInMonth.getMonth()'を 'anyDateInMonth.getMonth()+ 1'に変更してください。 – rescuecreative
@rescuecreative、これは次のようになります:' ++(anyDateInMonth.getMonth()) '?? –
Date.prototype.monthDays= function(){
var d= new Date(this.getFullYear(), this.getMonth()+1, 0);
return d.getDate();
}
別の可能な...それは両方の他の答えのあいまいさを排除し...任意の有効なdatetime値をとり、関連する月の日数を返します。あなたは
01を行うことができますオプションは、次に Datejsを使用することです
Date.getDaysInMonth(2009, 9)
ただ、この機能のためのライブラリを追加することはやり過ぎですが、あなたがあなたに利用可能なすべてのオプションを知っていることは常に良いことです:)
Datejsで使用する関数は次のとおりです。return [31、($ D.isLeapYear(year)?29:28)、31、30、31、30、31、31、30、31、30、31] ; – CyberFox
Javascriptの数ヶ月で0ベースの、これは正しいと思われる一方で、それは矛盾しているように、他のjavascript関数と一緒に – Greg
したがって、プログラム入力を使用している場合は、ユーザー入力とソウルスクラッチの関数を解析する場合は私の関数を使用してください。 –
それ以外は動作しません。新しい日付(2012、5、0).getDate()は31を返します。6月には30日しかありません。他の数ヶ月の間、同上。 http://jsfiddle.net/LVLd3/ http://www.timeanddate.com/calendar/ – SamGoody