`

日期选择器JS相关代码

 
阅读更多
<html>
<head>
<title>JS日期选择器</title>
<script type="text/javascript">
function HS_DateAdd(interval,number,date){
number = parseInt(number);
if (typeof(date)=="string"){var date = new Date(date.split("-")[0],date.split("-")[1],date.split("-")[2])}
if (typeof(date)=="object"){var date = date}
switch(interval){
case "y":return new Date(date.getFullYear()+number,date.getMonth(),date.getDate()); break;
case "m":return new Date(date.getFullYear(),date.getMonth()+number,checkDate(date.getFullYear(),date.getMonth()+number,date.getDate())); break;
case "d":return new Date(date.getFullYear(),date.getMonth(),date.getDate()+number); break;
case "w":return new Date(date.getFullYear(),date.getMonth(),7*number+date.getDate()); break;
}
}
function checkDate(year,month,date){
var enddate = ["31","28","31","30","31","30","31","31","30","31","30","31"];
var returnDate = "";
if (year%4==0){enddate[1]="29"}
if (date>enddate[month]){returnDate = enddate[month]}else{returnDate = date}
return returnDate;
}
function WeekDay(date){
var theDate;
if (typeof(date)=="string"){theDate = new Date(date.split("-")[0],date.split("-")[1],date.split("-")[2]);}
if (typeof(date)=="object"){theDate = date}
return theDate.getDay();
}
function HS_calender(){
var lis = "";
var style = "";
style +="<style type='text/css'>";
style +=".calender { width:170px; height:auto; font-size:12px; margin-right:14px; background:url(calenderbg.gif) no-repeat right center #fff; border:1px solid #397EAE; padding:1px}";
style +=".calender ul {list-style-type:none; margin:0; padding:0;}";
style +=".calender .day { background-color:#EDF5FF; height:20px;}";
style +=".calender .day li,.calender .date li{ float:left; width:14%; height:20px; line-height:20px; text-align:center}";
style +=".calender li a { text-decoration:none; font-family:Tahoma; font-size:11px; color:#333}";
style +=".calender li a:hover { color:#f30; text-decoration:underline}";
style +=".calender li a.hasArticle {font-weight:bold; color:#f60 !important}";
style +=".lastMonthDate, .nextMonthDate {color:#bbb;font-size:11px}";
style +=".selectThisYear a, .selectThisMonth a{text-decoration:none; margin:0 2px; color:#000; font-weight:bold}";
style +=".calender .LastMonth, .calender .NextMonth{ text-decoration:none; color:#000; font-size:18px; font-weight:bold; line-height:16px;}";
style +=".calender .LastMonth { float:left;}";
style +=".calender .NextMonth { float:right;}";
style +=".calenderBody {clear:both}";
style +=".calenderTitle {text-align:center;height:20px; line-height:20px; clear:both}";
style +=".today { background-color:#ffffaa;border:1px solid #f60; padding:2px}";
style +=".today a { color:#f30; }";
style +=".calenderBottom {clear:both; border-top:1px solid #ddd; padding: 3px 0; text-align:left}";
style +=".calenderBottom a {text-decoration:none; margin:2px !important; font-weight:bold; color:#000}";
style +=".calenderBottom a.closeCalender{float:right}";
style +=".closeCalenderBox {float:right; border:1px solid #000; background:#fff; font-size:9px; width:11px; height:11px; line-height:11px; text-align:center;overflow:hidden; font-weight:normal !important}";
style +="</style>";
var now;
if (typeof(arguments[0])=="string"){
selectDate = arguments[0].split("-");
var year = selectDate[0];
var month = parseInt(selectDate[1])-1+"";
var date = selectDate[2];
now = new Date(year,month,date);
}else if (typeof(arguments[0])=="object"){
now = arguments[0];
}
var lastMonthEndDate = HS_DateAdd("d","-1",now.getFullYear()+"-"+now.getMonth()+"-01").getDate();
var lastMonthDate = WeekDay(now.getFullYear()+"-"+now.getMonth()+"-01");
var thisMonthLastDate = HS_DateAdd("d","-1",now.getFullYear()+"-"+(parseInt(now.getMonth())+1).toString()+"-01");
var thisMonthEndDate = thisMonthLastDate.getDate();
var thisMonthEndDay = thisMonthLastDate.getDay();
var todayObj = new Date();
today = todayObj.getFullYear()+"-"+todayObj.getMonth()+"-"+todayObj.getDate();
for (i=0; i<lastMonthDate; i++){  // Last Month's Date
lis = "<li class='lastMonthDate'>"+lastMonthEndDate+"</li>" + lis;
lastMonthEndDate--;
}
for (i=1; i<=thisMonthEndDate; i++){ // Current Month's Date
if(today == now.getFullYear()+"-"+now.getMonth()+"-"+i){
var todayString = now.getFullYear()+"-"+(parseInt(now.getMonth())+1).toString()+"-"+i;
lis += "<li><a href=javascript:void(0) class='today' onclick='_selectThisDay(this)' title='"+now.getFullYear()+"-"+(parseInt(now.getMonth())+1)+"-"+i+"'>"+i+"</a></li>";
}else{
lis += "<li><a href=javascript:void(0) onclick='_selectThisDay(this)' title='"+now.getFullYear()+"-"+(parseInt(now.getMonth())+1)+"-"+i+"'>"+i+"</a></li>";
}
}
var j=1;
for (i=thisMonthEndDay; i<6; i++){  // Next Month's Date
lis += "<li class='nextMonthDate'>"+j+"</li>";
j++;
}
lis += style;
var CalenderTitle = "<a href='javascript:void(0)' class='NextMonth' onclick=HS_calender(HS_DateAdd('m',1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this) title='Next Month'>&raquo;</a>";
CalenderTitle += "<a href='javascript:void(0)' class='LastMonth' onclick=HS_calender(HS_DateAdd('m',-1,'"+now.getFullYear()+"-"+now.getMonth()+"-"+now.getDate()+"'),this) title='Previous Month'>&laquo;</a>";
CalenderTitle += "<span class='selectThisYear'><a href='javascript:void(0)' onclick='CalenderselectYear(this)' title='Click here to select other year' >"+now.getFullYear()+"</a></span>年<span class='selectThisMonth'><a href='javascript:void(0)' onclick='CalenderselectMonth(this)' title='Click here to select other month'>"+(parseInt(now.getMonth())+1).toString()+"</a></span>月";
if (arguments.length>1){
arguments[1].parentNode.parentNode.getElementsByTagName("ul")[1].innerHTML = lis;
arguments[1].parentNode.innerHTML = CalenderTitle;
}else{
var CalenderBox = style+"<div class='calender'><div class='calenderTitle'>"+CalenderTitle+"</div><div class='calenderBody'><ul class='day'><li>日</li><li>一</li><li>二</li><li>三</li><li>四</li><li>五</li><li>六</li></ul><ul class='date' id='thisMonthDate'>"+lis+"</ul></div><div class='calenderBottom'><a href='javascript:void(0)' class='closeCalender' onclick='closeCalender(this)'>×</a><span><span><a href=javascript:void(0) onclick='_selectThisDay(this)' title='"+todayString+"'>Today</a></span></span></div></div>";
return CalenderBox;
}
}
function _selectThisDay(d){
var boxObj = d.parentNode.parentNode.parentNode.parentNode.parentNode;
boxObj.targetObj.value = d.title;
boxObj.parentNode.removeChild(boxObj);
}
function closeCalender(d){
var boxObj = d.parentNode.parentNode.parentNode;
boxObj.parentNode.removeChild(boxObj);
}
function CalenderselectYear(obj){
var opt = "";
var thisYear = obj.innerHTML;
for (i=1970; i<=2020; i++){
if (i==thisYear){
opt += "<option value="+i+" selected>"+i+"</option>";
}else{
opt += "<option value="+i+">"+i+"</option>";
}
}
opt = "<select onblur='selectThisYear(this)' onchange='selectThisYear(this)' style='font-size:11px'>"+opt+"</select>";
obj.parentNode.innerHTML = opt;
}
function selectThisYear(obj){
HS_calender(obj.value+"-"+obj.parentNode.parentNode.getElementsByTagName("span")[1].getElementsByTagName("a")[0].innerHTML+"-1",obj.parentNode);
}
function CalenderselectMonth(obj){
var opt = "";
var thisMonth = obj.innerHTML;
for (i=1; i<=12; i++){
if (i==thisMonth){
opt += "<option value="+i+" selected>"+i+"</option>";
}else{
opt += "<option value="+i+">"+i+"</option>";
}
}
opt = "<select onblur='selectThisMonth(this)' onchange='selectThisMonth(this)' style='font-size:11px'>"+opt+"</select>";
obj.parentNode.innerHTML = opt;
}
function selectThisMonth(obj){
HS_calender(obj.parentNode.parentNode.getElementsByTagName("span")[0].getElementsByTagName("a")[0].innerHTML+"-"+obj.value+"-1",obj.parentNode);
}
function HS_setDate(inputObj){
var calenderObj = document.createElement("span");
calenderObj.innerHTML = HS_calender(new Date());
calenderObj.style.position = "absolute";
calenderObj.targetObj = inputObj;
inputObj.parentNode.insertBefore(calenderObj,inputObj.nextSibling);
}
  </script>
<style>
  body {font-size:12px}
  td {text-align:center}
  h1 {font-size:26px;}
  h4 {font-size:16px;}
  em {color:#999; margin:0 10px; font-size:11px; display:block}
  </style>
</head>
<body>
<h1>Date Picker Demo By Codefans.net</h1>
<h4 style="border-bottom:1px solid #ccc">ver:1.0</h4>
<table border="1" width="400" height="150">
<tr>
<td>这是示例文字</td>
<td>示例输入框</td>
<td>文本文本文本</td>
</tr>
<tr>
<td>示例输入框</td>
<td><input type="text" style="width:70px" onfocus="HS_setDate(this)">文本</td>
<td>这里是你的文字</td>
</tr>
<tr>
<td>一段文字</td>
<td>示例输入框</td>
<td>文本<input type="text" style="width:70px" onfocus="HS_setDate(this)">文本</td>
</tr>
</table>
<ul>
<li>它不需要其他框架类支持</li>
<li>支持多种浏览器</li>
<li>点击年份、月份可下拉选择</li>
</ul>
</body>
</html>
分享到:
评论

相关推荐

    利用css+javascript实现的一个日期选择器代码

    3. `js`:这是一个JavaScript文件,很可能包含了实现日期选择器逻辑的代码。JavaScript部分可能包括以下功能: - 初始化日期选择器,根据用户的操作显示和隐藏日历视图。 - 处理用户点击或键盘输入,更新选定的...

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

    在本项目中,“js calendar橙色日期选择器代码.zip”是一个包含JavaScript实现的日期选择器组件,它采用了一种独特的橙色主题,以提升网页界面的视觉吸引力和用户体验。 日期选择器是网页表单中常见的一种元素,...

    js日期选择代码.zip

    在JavaScript(简称JS)中,处理日期和时间是一项常见的任务,尤其在网页应用中,日期选择器是一个必备的交互元素。"js日期选择代码.zip"这个压缩包很可能包含了一个或多个实现这一功能的代码文件。从描述来看,这些...

    javascript实现的日期选择器

    `THUMBS.DB` 是一个图片预览数据库文件,通常在Windows系统中用于存储文件夹中的缩略图,可能与日期选择器的界面设计有关,包含了图标或示例图像。 `CALENDAR.HTM` 可能是一个HTML文件,展示日期选择器的样式和布局...

    JS的日期选择器

    在JavaScript(JS)中,日期选择器是一种常见且实用的功能,尤其在开发Web应用程序时,如日历插件、表单验证或事件预订系统等。H5(HTML5)技术的普及使得在浏览器环境中实现这样的功能变得更加简单。下面将详细讨论...

    js日期选择器

    在提供的文件名中,`TestCalendar.html`可能是测试日期选择器功能的HTML文件,`Image`文件夹可能包含用于美化日期选择器的图像资源,`Js`文件夹可能包含实现日期选择器功能的JavaScript代码,而`Css`文件夹则可能...

    日期选择器js

    "12306 的日期选择器js" 是一个专为12306火车票预订网站设计的日期选择器,具有良好的用户体验和高效的性能。这个组件可以被开发者直接应用到自己的项目中,为用户提供类似12306网站的日期选择体验。 在JavaScript...

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

    基于jQuery的H5移动端日期选择器可以提供直观、易用的用户界面,支持触摸操作,并能根据手机屏幕尺寸进行适配。通常,这样的选择器会包含年、月、日的滑动选择或者下拉菜单,使得用户可以快速、准确地设定日期,避免...

    JS日期时间选择器,js原生,任何地方可用

    首先,"dol-datepicker.js" 文件很可能是这个日期时间选择器的主要实现部分,它包含了JavaScript代码,用于创建交互式的日期时间选择界面以及处理用户的选取行为。JavaScript的Date对象是处理日期和时间的基础,我们...

    js日期时间选择器代码.zip

    【标题】"js日期时间选择器代码.zip"是一款基于JavaScript实现的日期时间选择器,它提供了用户友好的界面,使得在网页中选择日期和时间变得简单直观。此代码利用了JavaScript的强大功能,结合了CSS样式以提升用户...

    类似携程日期选择器javascript选择特效

    在提供的文件中,`demo.htm`很可能是展示这个日期选择器效果的HTML页面,而`DatePicker`可能是JavaScript代码文件,包含了实现日期选择器功能的代码。通过查看和分析这两个文件,我们可以深入理解其内部工作原理,...

    日期选择JS源代码网络资源

    根据"日期选择js"这个文件名,我们可以推测这个资源可能包含了实现上述功能的源代码,可能是一个独立的JS文件,包含了用于创建和管理日期选择器的函数和类。如果这个文件包含详细的注释和文档,那么它将是一个学习和...

    jsp日期选择器开发技术- Web开发

    在开发日期选择器时,通常会结合JavaScript库,如jQuery UI或Bootstrap Datepicker,来实现前端的日期选择功能。 1. **jQuery UI日期选择器**: - jQuery UI是一个强大的JavaScript库,提供了丰富的用户界面组件,...

    JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)

    "JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)"是一个专门为JavaScript环境设计的,旨在解决跨浏览器兼容性问题的日期选择工具。这个组件的目标是确保在不同浏览器如Internet Explorer(IE)、Firefox、...

    javascript日期选择器

    这里提供一个简单的日期选择器的HTML和JavaScript代码示例: ```html &lt;!DOCTYPE html&gt; .date-picker { position: relative; } .date-picker .calendar { display: none; position: absolute; top: 30...

    jquery日期选择器

    4. **易用性**:通过简单的jQuery代码即可实现日期选择器的添加和初始化,降低开发难度。 5. **事件支持**:提供丰富的事件接口,如日期选择后的回调函数,便于开发者进行进一步的业务逻辑处理。 ### 使用方法 1. ...

    纯javascript实现的日期选择器

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

    时间日期选择器

    在这个场景中,我们提到了与jQuery相关的两个关键词:“时间日期选择器”和“jQuery时间选择器”。 jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。在jQuery中,有...

    jQuery datepicker 日期选择器 中文汉化版 开始日期结束日期

    这段代码将创建两个日期选择器,分别用于选择开始日期和结束日期,开始日期不能早于今天,而结束日期不能超过一个月后且至少要晚于开始日期一天。 6. **自定义事件和回调函数**:jQuery datepicker还支持自定义...

    7个实用的js日期选择器

    - Moment.js是JavaScript中广泛使用的日期处理库,而MomentPicker是基于Moment.js的日期选择器。这个组合提供了一套完整的日期处理和展示解决方案,支持日期格式化、解析、比较等操作,适合需要复杂日期逻辑的项目...

Global site tag (gtag.js) - Google Analytics