JavaScript日历的奇怪行为
JavaScript Calendar odd behavior
本文关键字:日历 JavaScript 更新时间:2023-09-26
我看到还有其他JS日历,但我想尝试一下,看看我自己是否能做到。我遇到了一个小障碍。似乎当我运行脚本生成本月(八月)的日历时,我得到的是29天,而不是31天。有人能看到我做错了什么吗?请给我指正确的方向?
var arrMonth = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec");
var arrWeek = new Array("Su", "M", "Tu", "W", "Th", "F", "Sa");
var now = new Date();
var thisYear = now.getFullYear();
var thisMonth = now.getMonth();
var thisDate = now.getDate();
var thisDay = now.getDay();
var firstMonth = new Date();
var tempYear = firstMonth.setYear(thisYear);
var tempMonth = firstMonth.setMonth(thisMonth);
var tempDate = firstMonth.setDate(1);
var firstDay = firstMonth.getDay();
var totalDays = numberOfDays(thisYear, thisMonth);
var dayCounter = 1;
var strHTML = "";
strHTML += "<table border='1'>";
strHTML += "<tr>";
for(var x=0; x<arrMonth.length; x++){
if(x == thisMonth){
strHTML += "<td colspan='7' align='center'>" + arrMonth[x] + "</td>";
}
}
strHTML += "</tr>";
strHTML += "<tr>";
for(var x=0; x<arrWeek.length; x++){
strHTML += "<td align='center'>" + arrWeek[x] + "</td>";
}
strHTML += "</tr>";
strHTML += "<tr>";
for(var x=0; x<40; x++){
if(x < firstDay){
strHTML += "<td> </td>";
}
else if(x == firstDay){
strHTML += "<td align='center'>" + dayCounter + "</td>";
dayCounter++;
}
else{
if(x <= totalDays){
if((x % 7) == 0){
strHTML += "</tr>";
strHTML += "<tr>";
strHTML += "<td align='center'>" + dayCounter + "</td>";
}
else{
strHTML += "<td align='center'>" + dayCounter + "</td>";
}
dayCounter++;
}
}
}
alert(dayCounter + " : " + totalDays);
strHTML += "</tr>";
strHTML += "</table>";
alert(strHTML);
function numberOfDays(year, month) {
var d = new Date(year, month, 0);
return d.getDate();
}
您使用x
作为日历中单元格数的计数器,但将其与月中的天数进行比较。也就是说,更改此行:
if(x <= totalDays){
进入这个:
if( x < totalDays + firstDay ) {
演示:http://jsfiddle.net/j9rtm/
相关文章:
- JavaScript打印功能使日历停止工作
- 在jquery和javascript中创建自定义日历背后的逻辑
- 搜索日历事件的Javascript正则表达式
- c#转换为用于YUI日历的javascript
- JavaScript日历的奇怪行为
- 如何使用javascript、jquery、html和css制作基本的事件日历
- Javascript+HTML中的日期选择器准备好了吗?(需要:DD、MM、YY的单独字段加上日历选择器)
- 日期选择器使用所有字段的下拉菜单JavaScript和JQuery W/O日历
- 水平日历今天的日期以纯javascript突出显示
- 如何在c#中使用javascript日历设置值后获得文本框的文本
- 尝试创建日历时出现 JavaScript 错误
- 从 JavaScript 访问 ASP 日历
- 在javascript中使用API v3检索Google日历事件
- Javascript的问题,它不允许加载完整日历
- 获取从 SQL/PHP 到 Javascript 的日历事件
- 需要在 JavaScript 中调用一个方法,当在 SharePoint 日历中单击更多项目旁边的三角形符号时
- Google API v3 使用 JavaScript 添加新日历
- 具有资源视图的完整日历在 ASP.NET MVC 中不起作用,加载时 - 0x800a01bd - javaScript
- 覆盖另一个脚本中的全日历 JavaScript 函数
- rails 3完整日历Javascript/Jquery