RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 890051
Accepted
Чайник
Чайник
Asked:2020-10-07 17:28:15 +0000 UTC2020-10-07 17:28:15 +0000 UTC 2020-10-07 17:28:15 +0000 UTC

javascript 日历。我无法删除最后的日期

  • 772

有一个添加日历的功能,我还不太懂js,有两个问题。

1)函数在月底添加下个月日期的单元格,如何避免这种情况。

2)如果您仍然需要一个带有填充单元格的日历,如何在日历开始时用上个月的数字填充单元格?

	calendar(document.getElementById('calendar'));

	function calendar(div){
	
		var nowDate = new Date();
		var today = nowDate.getDate();
		var currentMonth = nowDate.getMonth();//ТЕКУЩИЙ МЕСЯЦ
		var currentYear = nowDate.getFullYear();
		var temp = new Date(currentYear, currentMonth + 1, 0);//колличество дней в текущем месяце
		var lastDay = temp.getDate();// последний день месяца
	
		var d = new Date(currentYear, currentMonth, 1);//начало текущего месяца
		var currentDay = d.getDate();
		var table = document.createElement('table');
	
		var TEST = '<tr><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td></tr>';
			table.innerHTML = TEST;
		
			var weekday = d.getDay() - 1;
			if(weekday < 0) { 
				weekday = 6; 
			}
		
			var a = 0;
			while(d.getMonth() == currentMonth){
			
				var i = 0;
				var tr = document.createElement('tr');
			
				while(i < 7){//пока i меньше чем кол-во дней недели
					var td = document.createElement('td');
					if(a == 0){
						if(i < weekday){
							//забиваем пустые значения
							td.innerText = '';
						}else{
							//заполняем числами первый ряд
							td.innerText = d.getDate();
							d.setDate(d.getDate() + 1);
						}
					}else{
							//заполняем все остальные ряды
							td.innerText = d.getDate();
							d.setDate(d.getDate() + 1);
						
							if(d.getDate() !== lastDay){
								console.log(d.getDate());	
							}
						
					}//END ELSE
						tr.appendChild(td);
						i++;
						
				}//end while
				table.appendChild(tr);
			
				a++;
			}//end while
		
			div.appendChild(table);
	}//end calendar function
<div id="calendar"></div>

javascript
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    Kosmos
    2020-10-07T18:17:52Z2020-10-07T18:17:52Z

    稍微修改了功能。第二个参数现在取值“true”或“false”,它决定是显示上个月(值“true”)还是当前月份(“false”)。

    calendar(document.getElementById("calendar"), false);
    
    function calendar(div, prevMonth){
    
        var nowDate = new Date();
        var today = nowDate.getDate();
        var currentMonth = nowDate.getMonth();//ТЕКУЩИЙ МЕСЯЦ
        var currentYear = nowDate.getFullYear();
        if ( prevMonth===true )
          if ( currentMonth==0 ){
            currentMonth = 11;
            currentYear--;
          } else {
          	currentMonth--;
          }
        var temp = new Date(currentYear, currentMonth + 1, 0);//колличество дней в текущем месяце
        var lastDay = temp.getDate();// последний день месяца
    
        var d = new Date(currentYear, currentMonth, 1);//начало текущего месяца
        var currentDay = d.getDate();
        var table = document.createElement('table');
    
        var TEST = '<tr><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td></tr>';
        table.innerHTML = TEST;
    
        var weekday = d.getDay() - 1;
        if(weekday < 0) { 
          weekday = 6; 
        }
            
      	var a = 0;
        while((d.getMonth() == currentMonth) && (d.getMonth()==currentMonth)){
    
          var i = 0;
          var tr = document.createElement('tr');
          
          while((i < 7)){//пока i меньше чем кол-во дней недели
    				if ( d.getMonth()!=currentMonth ){
              break;
            }
            var td = document.createElement('td');
            if(a == 0){
              if (i < weekday){
                //забиваем пустые значения
                td.innerText = '';
              } else {
                //заполняем числами первый ряд
                td.innerText = d.getDate();
                d.setDate(d.getDate() + 1);
              }
            } else {
              //заполняем все остальные ряды
              td.innerText = d.getDate();
              d.setDate(d.getDate() + 1);
    
              if(d.getDate() !== lastDay){
                console.log(d.getDate());   
              }
    
            }//END ELSE
            tr.appendChild(td);
            i++;
    
          }//end while
          table.appendChild(tr);
    
          a++;
        }//end while
    
        div.appendChild(table);
    }//end calendar function
    <div id="calendar"></div>

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    是否可以在 C++ 中继承类 <---> 结构?

    • 2 个回答
  • Marko Smith

    这种神经网络架构适合文本分类吗?

    • 1 个回答
  • Marko Smith

    为什么分配的工作方式不同?

    • 3 个回答
  • Marko Smith

    控制台中的光标坐标

    • 1 个回答
  • Marko Smith

    如何在 C++ 中删除类的实例?

    • 4 个回答
  • Marko Smith

    点是否属于线段的问题

    • 2 个回答
  • Marko Smith

    json结构错误

    • 1 个回答
  • Marko Smith

    ServiceWorker 中的“获取”事件

    • 1 个回答
  • Marko Smith

    c ++控制台应用程序exe文件[重复]

    • 1 个回答
  • Marko Smith

    按多列从sql表中选择

    • 1 个回答
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Suvitruf - Andrei Apanasik 什么是空? 2020-08-21 01:48:09 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5