この記事の例では、月の最後の日数、最大日数、特定の日の週番号を取得する JS メソッドを説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>标题页</title> <script language="javascript"> function getLastDay(year,month) { var new_year = year; //取当前的年份 var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定) if(month>12) //如果当前大于12月,则年份转到下一年 { new_month -=12; //月份减 new_year++; //年份增 } var newnew_date = new Date(new_year,new_month,1);//取当年当月中的第一天 return (new Date(new_date.getTime()-1000*60*60*24)).getDate();//获取当月最后一天日期 } </script> <body> <input id="Button1" type="button" value="取2007年5月的最后一天" onClick="alert(getLastDay(2007,5))" /> </body> </html>
js は月の最大日数を取得します
JSのnew Date("xxxx/xx/xx")の日付構築方法には素晴らしいものがあります、
"xxxx/xx/0" (数値 0) を渡すと、取得される日付は "xx" 月の前の月の最終日になります ("xx" 月の最大値は 69 です。話は逸れます)。
「xxxx/xx/1」(No.1)を渡すと取得される日付はxx月の翌月1日となります(ご自身でご理解ください)
「1999/13/0」を渡すと「1998/12/31」が得られます。そして最大の利点は、「xxxx/3/0」を渡すと、xxxx 年の 2 月の最終日が取得されることです。現在の年が閏年であるかどうかが自動的に判断され、28 または 29 が返されます。自分で判断する必要はありません、
したがって、選択した年と月に何日あるかを知りたい場合は、
var temp=new Date("选择年/选择月+1/0"); return temp.getDate()//最大天数
検証には、この方法も使用できます。
以下は、特定の年と月の日数を取得するために JS で記述された getDaysInMonth(year, month) メソッドです。
function getDaysInMonth(year,month){ month = parseInt(month,10)+1; var temp = new Date(year+"/"+month+"/0"); return temp.getDate(); }
js 特定の年の特定の日の週番号を取得します
/** * 判断年份是否为润年 * * @param {Number} year */ function isLeapYear(year) { return (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0); } /** * 获取某一年份的某一月份的天数 * * @param {Number} year * @param {Number} month */ function getMonthDays(year, month) { return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || (isLeapYear(year) ? 29 : 28); } /** * 获取某年的某天是第几周 * @param {Number} y * @param {Number} m * @param {Number} d * @returns {Number} */ function getWeekNumber(y, m, d) { var now = new Date(y, m - 1, d), year = now.getFullYear(), month = now.getMonth(), days = now.getDate(); //那一天是那一年中的第多少天 for (var i = 0; i < month; i++) { days += getMonthDays(year, i); } //那一年第一天是星期几 var yearFirstDay = new Date(year, 0, 1).getDay() || 7; var week = null; if (yearFirstDay == 1) { week = Math.ceil(days / yearFirstDay); } else { days -= (7 - yearFirstDay + 1); week = Math.ceil(days / 7) + 1; } return week; }
この記事が JavaScript プログラミングのすべての人に役立つことを願っています。