`
hulin
  • 浏览: 61749 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

javascript做日期选择器实例

阅读更多

                                  
  1.新建selectDateAll.js
  var months = new Array("一月", "二月", "三月","四月", "五月", "六月", "七月", "八月", "九月","十月", "十一月", "十二月");
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var days = new Array("星期日","星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
var getObject,oldObject;//取得当前对象
//取得指定年月的天数
function getDays(month, year) {
   if (1 == month)
      return ((0==year%4)&&(0!=(year%100)))||(0==year%400)?29:28;
   else
      return daysInMonth[month];
}
//取得今天的年,月,日
function getToday() {
   this.now = new Date();
   this.year = this.now.getFullYear();
   this.month = this.now.getMonth();
   this.day = this.now.getDate();
}
today = new getToday();
//创建日历
function newCalendar() {
   today = new getToday();
   var parseYear = parseInt(document.all.year[document.all.year.selectedIndex].text);
   var newCal = new Date(parseYear,document.all.month.selectedIndex, 1);
   var day = -1;
   var startDay = newCal.getDay();
   var daily = 0;
   if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth()))day = today.day;
   var tableCal = document.all.calendar.tBodies.dayList;
   var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear());
   for (var intWeek = 0; intWeek < tableCal.rows.length;intWeek++)
       for (var intDay = 0;intDay < tableCal.rows[intWeek].cells.length;intDay++){
         var cell = tableCal.rows[intWeek].cells[intDay];
  if ((intDay == startDay) && (0 == daily))daily = 1;
  if(day==daily)cell.className = "today";//今天的Class
  else if(intDay==6)cell.className = "sunday";//周六的Class
  else if (intDay==0)cell.className ="satday";//周日的Class
  else cell.className="normal";//平常的Class
  if ((daily > 0) && (daily <= intDaysInMonth)){
   cell.innerText = daily;
   daily++;
  }else cell.innerText = "";
   }
}
//取得鼠标单击处的日期数据
function getDate() {
   var sDate;
   if ("TD" == event.srcElement.tagName)
      if ("" != event.srcElement.innerText){//定义显示日期的格式
sMonth = document.all.month.value;
sDay = event.srcElement.innerText;
if(sMonth.length==1)sMonth = "0"+sMonth;
if(sDay.length==1)sDay = "0"+sDay;
sDate = document.all.year.value + "-" + sMonth + "-" + sDay;
getObject.value=sDate;
window.close();
  }
}
//隐藏图层
function HideLayer() {
Layer.style.visibility = "hidden";
}
//显示图层
function LayerShow(){
Layer.style.visibility = "visible";
}
//显示div对象Layer
function ShowLayer(t,l) {
if(oldObject==null)oldObject=getObject;//赋值
if(Layer.style.visibility != "visible" && oldObject==getObject){//判断是否操作同一表
Layer.style.top = t+document.body.scrollTop;
Layer.style.left = l+document.body.scrollLeft;
Layer.style.visibility = "visible";
oldObject=getObject;
}else if(oldObject==getObject){
HideLayer();
}else{
Layer.style.top = t+document.body.scrollTop;
Layer.style.left = l+document.body.scrollLeft;
Layer.style.visibility = "visible";
oldObject=getObject;
}
}
//定义div对象Layer用以显示日期
function getLayer(){
document.write("<div id=\"Layer\" style=\"position:absolute;width:340;z-index:12;boder-color:#ffffff;border:0px outset white;background-color:#D4D0C8;layer-background-color:#D4D0C8;visibility:hidden;height:38;left:58;top:137;\"><input type=\"hidden\" name=\"ret\"><table width='320' id=\"calendar\" cellpadding=\"0\" align=\"center\"><thead><tr><td height='4'></td></tr><tr><td colspan=7 align=CENTER>请选择月份:<select id=\"month\" onChange=\"newCalendar()\" name=\"select\" class=\"smallSel\">");
for (var intLoop = 0; intLoop < months.length;  intLoop++)
document.write("<OPTION VALUE= " + (intLoop + 1) + " " + (today.month == intLoop ? "Selected" : "") + ">" + months[intLoop]);
document.write("</select> &nbsp;&nbsp;&nbsp;&nbsp;请选择年份:<select id=\"year\" onChange=\"newCalendar()\" name=\"select\" class=\"smallSel\">");
for (var intLoop = today.year-50; intLoop < (today.year + 10); intLoop++)
document.write("<OPTION VALUE= "+intLoop+" "+(today.year == intLoop ?  "Selected" : "") + ">" + intLoop);
document.write("</select></td></tr><tr><td height='6'></td></tr><tr class=\"days\">");
document.write("<TD class=sunday>" + days[0] + "</TD>");
for (var intLoop = 1; intLoop < days.length-1;intLoop++)
document.write("<TD>" + days[intLoop] + "</TD>");
document.write("<TD class=sunday>" + days[intLoop] + "</TD>");
document.write(" </tr></thead><tbody border=1 cellspacing=\"0\" cellpadding=\"0\" id=\"dayList\" align=CENTER ONCLICK='getDate()'>");
for (var intWeeks = 0; intWeeks < 6; intWeeks++){
document.write("<TR style='cursor:hand'>");
for (var intDays = 0; intDays < days.length;intDays++)document.write("<TD></TD>");
document.write("</TR>");
}
document.write("</tbody></table></div>");
}
//定义css
document.write("<style>TABLE{font-family:宋体,SimSun; font-size:9pt;border:0px;bgcolor:#D4D0C8;}.drpdwn {font-family:宋体,SimSun;font-size:9pt;color:#000000;background-color:#000000} SELECT.smallSel{    BACKGROUND-COLOR: #eeeeee;    COLOR: #000000;    FONT-SIZE: 9pt} .normal{BACKGROUND: #D4D0C8;} .today {font-weight:bold;background-image:  url(date.gif);} .satday{color:#800000} .sunday{color:#800000} .days {FONT-SIZE: 9pt;} .Arraw {color:#0000BB; cursor:hand; font-family:Webdings; font-size:9pt}</style>");

getLayer();//显示日期选择器

//选择日期
function selectDate(x){
getObject=x;
newCalendar();
ShowLayer(0,0);//显示出div
}

2 新建selectDate.htm
  <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>请选择日期</title>
</head>
<script language="JavaScript" src="selectDateAll.js"></script>
<script language="JavaScript">
function returns(){
window.returnValue = dates.value;
}
</script>
<body bgcolor="#d4d0c8"
  leftmargin="0"
  rightmargin="0"
  bottommargin="0"
  topmargin="0"
  onLoad="selectDate(dates)"
  onUnload="returns()">
<input type="hidden" name="dates" id="dates">
</body>
</html>

3 建立index.htm
  <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>日期选择示例</title>
</head>
<script language="JavaScript">
<!--
function popup(test){
  var xx=event.clientX;
  var yy=event.clientY;
  test.value=window.showModalDialog("selectDate.htm","","dialogWidth:350px;dialogHeight:180px;dialogLeft:"+xx+"px;dialogTop:"+yy+"px;status:0;");
}
-->
</script>
<body>
请输入日期:
<input name="test" id="test" type="text" onClick="popup(this)">
</body>
</html>

 

分享到:
评论

相关推荐

    javascript日期选择器,很强大

    JavaScript日期选择器是一种在网页上方便用户选择日期的交互组件,通常用于表单输入或事件调度等场景。在Web开发中,JavaScript提供了内置的Date对象,但为了提供更好的用户体验和更丰富的功能,开发者通常会使用...

    javascript实现的日期选择器

    `INDEX.HTM` 通常是网页的主入口文件,它可能包含引入JavaScript脚本和样式表的链接,以及用于展示日期选择器实例的HTML元素。 `QINGJIA_ADD.HTM` 这个文件名暗示了可能是关于请假申请的功能,日期选择器在这种情况...

    JavaScript日期控件02(日期选择器)

    这篇博客“JavaScript日期控件02(日期选择器)”可能是博主FantasyYong分享的一个关于自定义日期选择器的实现方法。日期控件在网页表单、事件预订、日程管理等场景中广泛应用,为用户提供友好的界面体验。 在...

    纯javascript实现的日期选择器

    【标题】:“纯JavaScript实现的日期选择器” 在网页开发中,日期选择器是一个非常常见的功能,它允许用户方便地选择日期,常用于表单填写、日历应用或事件预订等场景。本教程将深入探讨如何使用纯JavaScript来创建...

    JavaScript 日期联动选择器

    - **实例化DateSelector**:创建日期联动选择器实例,传入年、月、日的`&lt;select&gt;`元素引用。 - **设置日期范围**:通过`MinYear`和`MaxYear`参数设定可选的最小和最大年份,确保用户只能在指定范围内选择日期。 - **...

    JavaScript日期选择器

    JavaScript日期选择器是一种常见的网页交互元素,用于帮助用户在网页上方便地选取日期,并将所选日期自动填充到相应的文本框或输入字段中。在网页开发中,这种功能广泛应用于表单填写、日程安排、事件预订等场景。...

    基于jquery的H5移动端选择器,日期选择器,自定义级联选择器,自定义html选择器

    接下来,可以通过JavaScript代码实例化选择器,并配置所需的参数,如日期格式、级联数据等。最后,将选择器绑定到HTML元素上,即可在页面上看到效果。同时,阅读库的文档将有助于理解其具体用法和API,以便更好地...

    vue日期选择器控件

    在Vue应用中,日期选择器是一个常见的组件,用于让用户方便地选取日期。本篇将深入探讨"vue日期选择器控件"的相关知识点。 1. **Vue.js 组件系统** Vue的核心特性之一就是组件化开发,它允许我们将UI拆分成可复用...

    JavaScript 日期下拉选择器

    JavaScript 日期下拉选择器是一种常见的用户界面组件,它允许用户在网页上方便地选取日期。这个组件通常由三部分组成:年份、月份和日期的下拉菜单,这三个部分会联动显示,即用户在选择年份时,月份和日期的选择会...

    Javascript日期选择器

    JavaScript日期选择器是一种在网页上实现用户交互式选取日期的工具,它通常通过JavaScript库或框架如jQuery UI、Bootstrap Datepicker、Pickadate.js等实现。这类选择器可以帮助用户更直观、便捷地输入或选择日期,...

    时间日期JavaScript 选择时间日期

    这个压缩包文件的标题“时间日期JavaScript选择时间日期”表明它包含了一系列用于在网页上实现日期和时间选择功能的JavaScript代码片段或库。这些资源可能是开发者个人整理并珍藏的经典示例,可以帮助我们更好地理解...

    经典javascript日期控件选择器,javascript学习资料,经典js案例

    在这个名为“经典javascript日期控件选择器,javascript学习资料,经典js案例”的压缩包中,包含了丰富的JavaScript学习资源和一个特别经典的时间控件。这个时间控件允许用户根据特定的格式定义日期和时间,而且设计...

    日期选择器.zip

    综上所述,这个"日期选择器.zip"文件包含了一个实现日期选择器功能的代码实例,涉及到了日期处理、事件交互、DOM操作、用户体验优化等多个关键知识点。通过学习和理解这段代码,开发者可以提升自己在创建用户界面...

    js calendar橙色日期选择器代码.zip

    8. **跨浏览器兼容性**:由于JavaScript的实现存在差异,日期选择器可能需要针对不同的浏览器做兼容性处理。例如,IE8及以下版本不支持原生的Date对象的一些功能,可能需要引入polyfill库。 9. **响应式设计**:...

    酒店订房日期选择器结合vue2

    4. **模板和组件**:在Vue实例的模板中,我们可以插入日期选择器组件,让用户选择日期: ```html 选择入住日期"&gt; 选择退房日期"&gt; ``` `v-model`指令绑定了日期选择器的值到Vue实例的数据。 5. **事件监听**:...

    JavaScript动态选择日期

    这个元素提供了原生的日期选择器,但在某些老旧的浏览器中可能不支持。因此,我们需要通过JavaScript来实现更广泛的兼容性。 二、JavaScript日期对象 JavaScript中的`Date`对象用于处理日期和时间。你可以创建一个...

    javascript的日期空间源代码

    当涉及到用户界面,特别是日期选择器控件时,JavaScript常常被用来创建交互式的日历组件。这种控件允许用户方便地选择日期,常见于表单输入或事件预订等场景。实现这样的控件,我们需要考虑以下几个关键点: 1. **...

    HTML5移动端日期选择器.zip

    然而,这个内置的日期选择器在不同浏览器和平台上的表现并不一致,因此,开发人员常常需要借助第三方库或自定义解决方案来创建统一且功能丰富的日期选择器。 "LCalendar"可能是一个这样的第三方库,它专门针对HTML5...

    前台JAVASCRIPT日期控件超级好用实例用过的

    【标题】"前台JAVASCRIPT日期控件超级好用实例用过的"指的是在Web前端开发中使用JavaScript实现的一种高效、实用的日期选择器控件。这种控件通常用于网页表单,允许用户方便地选取日期,提高了用户体验。 【描述】...

    JS日期选择器带时分秒

    在JavaScript(JS)中,日期选择器是一种常用的交互组件,用于让用户方便地选取日期和时间。"JS日期选择器带时分秒"是指一个能够显示并允许用户选择具体到秒的日期时间选择器。这样的功能在许多Web应用程序中非常...

Global site tag (gtag.js) - Google Analytics