JS实现日历

6 篇文章 0 订阅

JS 实现日历

最近在学JS,分享一些使用js实现的网页,后续还会更一些关于js的例子,话不多说,直接附上源码,源码上有注释。

js 实现日历主要 运用Date函数,这里就不在多讲Date的用法,因为并不是很难,所以想要了解的朋友可以去网上自行搜索,有很多的讲解!

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Js日历</title>
<style type="text/css">
 .evrday{
	    width:14%;     
		 float:left;
		 }
  #calendar{
	  width:400px;
	  margin:auto;
  }
 button{
	 width:25%;
	 height:40px;
	 float:left;
 }
 div{
	 margin-top:10px;
	 margin-bottom:5px;
	 text-align:center;
 }
#month{
width:50%;
float:left;
}

 
</style>
</head>
<body onLoad="showday()">
 <div id="calendar">
    <div>
       <button onClick="shang()">上个月</button>
         <div id="month"></div>
       <button onClick="next()" id="nav">下个月</button>
    </div>
    <div>
       <div class="evrday">日</div>
       <div class="evrday">一</div>
       <div class="evrday">二</div>
       <div class="evrday">三</div>
       <div class="evrday">四</div>
       <div class="evrday">五</div>
       <div class="evrday">六</div>
    </div>
    
    <div id="day" style="color:#0FF"></div>
 </div>
 <script>
      var today=new Date();//获取当前时间
	  var year=today.getFullYear();//获取当前的年份
	  var month=today.getMonth()+1;//获取当前月
	  var day=today.getDate();//获取当前月
	  var allday=0;
	  function showmonth(){
		  var year_month=year+"年"+month+"月";
		  document.getElementById("month").innerHTML=year_month;//显示当前的年月日
	  }
	
	  function count(){
		  if(month!=2)
		  {
		  if(month==4||month==6||month==9||month==11)//判断是否是相同天数的几个月,二月除外
		     allday=30;
			 else
			 allday=31;
		  }
		  else
		  {
			  if((year%4==0&&year%100!=0)||(year%400==0))//判断是否是闰年,进行相应的改变
			  allday=29;
			  else 
			  allday=28;}
	  }
	  //显示相应月份的天数
	  function showday(){	  
         showmonth()
		    count();
		  var fistdate=new Date(year,month-1,1);
		  var xinqi=fistdate.getDay();
		  var daterow=document.getElementById("day");
		  for(var i=0;i<xinqi;i++)//循环输出天数
		  {
			  var dayElement=document.createElement("div");
			    dayElement.className="evrday";
			 daterow.appendChild(dayElement);
		  }
		  
		  for(var j=1;j<=allday;j++)
		  {	
			  var dayElement=document.createElement("div");
			   dayElement.innerHTML=j;
			    dayElement.className="evrday";
				if(j==day)//当前日,标红
				 dayElement.style.color="red";
				daterow.appendChild(dayElement);
		  }
	  }
	   //点击下个月
	    function next(){
           document.getElementById('day').innerHTML ="";
          if(month<12)
		    {  month=month+1;
		    }
		      else
		       {  month=1;
		         year=year+1; 
		     }
		        document.getElementById('div').innerHTML =showday();    
		}
        //点击上个月
		function shang(){
           document.getElementById('day').innerHTML ="";
          if(month>1)
		      {month=month-1;
		      }
		      else
		      {
		         month=12;
		         year=year-1; 
		     }
		        document.getElementById('div').innerHTML =showday();    
		}

	 
	  </script>
</body>
</html>

下面是运行的示例图:
在这里插入图片描述

  • 16
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
HTMLJS可以很方便地实现一个简单的日历。以下是一个基本的示例: HTML部分: ``` <div id="calendar"></div> ``` JS部分: ``` // 获取当前日期 var currentDate = new Date(); // 获取年份和月份 var currentYear = currentDate.getFullYear(); var currentMonth = currentDate.getMonth(); // 显示日历 showCalendar(currentYear, currentMonth); // 上个月按钮点击事件 document.getElementById("prevMonth").addEventListener("click", function() { currentMonth--; if (currentMonth < 0) { currentYear--; currentMonth = 11; } showCalendar(currentYear, currentMonth); }); // 下个月按钮点击事件 document.getElementById("nextMonth").addEventListener("click", function() { currentMonth++; if (currentMonth > 11) { currentYear++; currentMonth = 0; } showCalendar(currentYear, currentMonth); }); // 日历显示函数 function showCalendar(year, month) { var calendarElement = document.getElementById("calendar"); var calendarHTML = ""; // 生成标题 calendarHTML += "<h2>" + year + "年" + (month + 1) + "月</h2>"; // 生成上个月按钮 calendarHTML += "<button id='prevMonth'>上个月</button>"; // 生成下个月按钮 calendarHTML += "<button id='nextMonth'>下个月</button>"; // 生成表格 calendarHTML += "<table>"; // 生成表头 calendarHTML += "<tr><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr>"; // 获取当月第一天和最后一天的日期对象 var firstDay = new Date(year, month, 1); var lastDay = new Date(year, month + 1, 0); // 获取当月第一天是星期几 var firstDayOfWeek = firstDay.getDay(); // 获取当月总共有多少天 var totalDays = lastDay.getDate(); // 生成日期表格 var date = 1; for (var i = 0; i < 6; i++) { calendarHTML += "<tr>"; for (var j = 0; j < 7; j++) { if (i === 0 && j < firstDayOfWeek) { // 空白格 calendarHTML += "<td></td>"; } else if (date > totalDays) { // 空白格 calendarHTML += "<td></td>"; } else { // 日期格 calendarHTML += "<td>" + date + "</td>"; date++; } } calendarHTML += "</tr>"; if (date > totalDays) { break; } } calendarHTML += "</table>"; // 将生成的日历HTML添加到页面中 calendarElement.innerHTML = calendarHTML; } ``` 这个JS函数可以根据指定的年份和月份生成对应的日历表格,并且提供了上一个月和下一个月切换的功能。在HTML中,我们只需要一个`<div>`元素来显示日历

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值