//根据年、月插入日历
function Make_Calendar(Year, Month) {
var First_Date = new Date(Year, Month, 1); //根据年、月获取该月第一天(a)的日期形式
// var Heading = Header(Year, Month); //获取抬头,及该年份2月的天数
var First_Day = First_Date.getDay() + 1; //获取a是星期几:1(星期日) 到 7(星期六)
var today = new Date();
//组合日期到HTML代码
var dayflag = First_Day; //当前星期(换行标记)
var reHtml = ""; //返回的HTML代码
var daysofmonth = MyCalendar_get_daysofmonth(Year); for(var i=1;i<=daysofmonth[Month];i++)
{
if(dayflag%7==1) reHtml += "<tr align=\"center\" valign=\"middle\">"; //如果当前为星期天,则前面加起始行号
reHtml += "<td width=\"40\" height=\"25\" onMouseOver=\"dateSelectOnMouseEvent(this)\" onMouseOut=\"dateSelectOnMouseEvent(this)\" onClick=\"dateSelectOnMouseEvent(this)\" style=\"cursor:Hand;";
if((Year==today.getFullYear())&&(Month==today.getMonth())&&(i==today.getDate())) reHtml += "font-weight: bolder;color: #FF0000;";
reHtml += "\">" + i;
reHtml += "</td>";
if(dayflag%7==0) reHtml += "</tr>"; //如果当前为星期六,则后面加结束行号
dayflag++;
}
//补齐显示的天数
if(First_Day != 1)
{ //向前一月补
var tempstr = "";
var tempmonth = (Month - 1)>0?(Month - 1):0;
var tempint = daysofmonth[tempmonth] - 0;
for(var j=First_Date.getDay();j>0;j--)
{
tempstr = "<td width=\"40\" height=\"25\" onMouseOver=\"dateSelectOnMouseEvent(this)\" onMouseOut=\"dateSelectOnMouseEvent(this)\" onClick=\"dateSelectOnMouseEvent(this,'-')\" style=\"cursor:Hand\"><font color=\"blue\">" + tempint + "</font></td>" + tempstr;
tempint--;
}
reHtml = "<tr align=\"center\" valign=\"middle\">" + tempstr + reHtml;
}
dayflag--; if(dayflag%7 != 0)
{ //向下一个月补
var tempstr = "";
var tempint = 7 - dayflag%7;
for(var k=1;k<=tempint;k++)
{
tempstr += "<td width=\"40\" height=\"25\" onMouseOver=\"dateSelectOnMouseEvent(this)\" onMouseOut=\"dateSelectOnMouseEvent(this)\" onClick=\"dateSelectOnMouseEvent(this,'+')\" style=\"cursor:Hand\"><font color=\"blue\">" + k + "</font></td>";
}
reHtml = reHtml + tempstr + "</tr>";
}
reHtml = "<table STYLE=\"border-collapse: separate\"; border=\"1\" cellspacing=\"0\" cellpadding=\"3\" bordercolor=\"#000000\" bordercolordark=\"#ffffff\" bordercolorlight=\"#000000\" class=\"dateSelectTextSize\">" + reHtml + "</table>"; dataSelectDaySelectList.innerHTML = reHtml;
document.all.dateSelectYear.value = Year;
document.all.dateSelectMonth.value = (Month<9?"0"+(Month+1):(Month+1)+"");
} //日期单元格的鼠标事件响应
function dateSelectOnMouseEvent(ele,tp)
{
if(event.type=="mouseover")
{ //鼠标悬停
ele.style.backgroundColor = "#EEEEEE";
}else if(event.type=="mouseout"){ //鼠标移开
ele.style.backgroundColor = "";
}else if(event.type=="click"){
if(tp=="+") SkipBy("+",1);
else if(tp=="-") SkipBy("-",1);
else getSelectTime(ele);
}
}//向前、向后翻指定个月份
function SkipBy(Direction,nub) {
var Selected_Year = document.all.dateSelectYear.value - 0;
var Selected_Month = document.all.dateSelectMonth.value - 0 - 1;
for(var i=0;i<nub;i++)
{
if (Direction == '+')
{
if (Selected_Month == 11)
{
Selected_Month = 0;
Selected_Year++;
}else {
Selected_Month++;
}
}else {
if (Selected_Month == 0)
{
Selected_Month = 11;
Selected_Year--;
}else {
Selected_Month--;
}
}
document.all.dateSelectYear.value = Selected_Year;
document.all.dateSelectMonth.value = Selected_Month + 1;
}
Make_Calendar(Selected_Year, Selected_Month);
} //根据输入的年份改变显示的日历
function changeYear(tp) { var Year = document.all.dateSelectYear.value;
if(tp=="+")
{ //后翻一年
Make_Calendar(Year - 0 + 1, document.all.dateSelectMonth.value - 0 -1);
}else if(tp=="-"){
//前翻一年
Make_Calendar(Year - 0 - 1, document.all.dateSelectMonth.value - 0 -1);
}else{
//文本框输入
if(Year.length < 4)
{
alert("请输入完整的年份!");
document.all.dateSelectYear.focus();
document.all.dateSelectYear.select();
return;
}else if(Year.length == 4) {
Make_Calendar(Year - 0, document.all.dateSelectMonth.value - 0 -1);
}
}
return false;
}
解决方案 »
- 请问这是一种什么加密方式?
- jquery 获得“tr”内的数据 (是“tr”啊)
- 如何实现这样的功能
- 请问,javascript怎么隐藏一个<a></a>标记?谢谢
- 父窗口控制子窗口的经典问题。
- 关于几个层的最前放显示控制问题!在线等候!100分!
- 请问,怎么样用Javascript来解决建树的问题,要建三层以上的树,只要静态就行,不用从数据库加载
- 简单的动态显示的问题,用帧
- 打印問題
- 有没觉得这个javascript 和 jscript 很烦,很讨厌啊?fuck microsoft--fuck netscape
- 能否让showModelDialog不被关闭(或者去掉右上角的关闭Button)
- 成星啦,散尽所有可用分~~~~
//显示日历
function riliShow() {
/*
tp:标志 0-显示时间 1-不显示时间
obj: 目标对象
params:参数,可以是数组或字符串(用于存放输入框内的信息,从而弹出窗口将显示该信息,不然显示的为当前日期)
字符串时以 “-” 进行分割
dstop:window.event.y
dsleft:window.event.x
*/
tp = arguments[0];
obj = arguments[1];
params = arguments[2];
dstop = arguments[3];
dsleft = arguments[4];
if(obj!=null){
this.myObj = obj;
}
if(document.all.dateSelectDiv.style.visibility == "hidden")
{
var today = new Date();
var showTop,showLeft;
if(dstop==null) showTop = window.event.y + document.body.scrollTop ;
else showTop = dstop - 0;
if(dsleft==null) showLeft = window.event.x + document.body.scrollLeft - 200;
else showLeft = dsleft - 0;
document.all.dateSelectDiv.style.left = showLeft;
document.all.dateSelectDiv.style.top = showTop;
document.all.dateSelectDiv.style.visibility = "visible";
if(tp==1)
{
dateSelectInputTime.style.display = "none";
}else{
dateSelectInputTime.style.display = "";
} if(params==null)
{
/*
document.all.dateSelectHour.value = (today.getHours()<10?"0"+today.getHours():today.getHours()+"");
var myMinutes = (today.getMinutes()<10?"0"+today.getMinutes():today.getMinutes()+"");
var tp = document.getElementById("dateSelectMinute");
myMinutes = (myMinutes - myMinutes%5);
var ep = (myMinutes<10?"0"+myMinutes:myMinutes+"");
tp.value = ep;
*/
document.all.dateSelectHour.value = (today.getHours()<10?"0"+today.getHours():today.getHours()+"");
document.all.dateSelectMinute.value = (today.getMinutes()<10?"0"+today.getMinutes():today.getMinutes()+"");
document.all.dateSelectSecond.value = (today.getSeconds()<10?"0"+today.getSeconds():today.getSeconds()+"");
Make_Calendar(today.getFullYear(),today.getMonth());
}else if(params.constructor==Array){
//alert("Array\n"+params)
var tyear,tmonth,tdate,thour,tminute,tsecond;
if(params.length>0)
{
if(params[0].length==4) tyear = params[0] - 0;
else tyear = today.getFullYear();
}
if(params.length>1){
if(params[1].length==2) tmonth = params[1] - 0 - 1;
else tmonth = today.getMonth();
}
if(params.length>2){
if(params[2].length==2) tdate = params[2] - 0;
else tdate = today.getDate();
}
if(params.length>3){
if(params[3].length==2) thour = params[3] - 0;
else thour = today.getHours();
}
if(params.length>4){
if(params[4].length==2) tminute = params[4] - 0;
else tminute = today.getMinutes();
}
if(params.length>5){
if(params[5].length==2) tsecond = params[5] - 0;
else tsecond = today.getSeconds();
}
//设置小时
var tp = document.getElementById("dateSelectHour");
var ep = (thour<10?"0"+thour:thour+"");
tp.value = ep;
//设置分钟
tp = document.getElementById("dateSelectMinute");
//tminute = (tminute - tminute%5);
ep = (tminute<10?"0"+tminute:tminute+"");
tp.value = ep;
//设置秒
tp = document.getElementById("dateSelectSecond");
//tsecond = (tsecond - tsecond%5);
ep = (tsecond<10?"0"+tsecond:tsecond+"");
tp.value = ep;
Make_Calendar(tyear,tmonth);
}else if(params.constructor==String){
//alert("String\n"+params)
var tpa = params.split("-");
var tyear,tmonth,tdate,thour,tminute;
if(tpa.length>0)
{
if(tpa[0].length==4) tyear = tpa[0] - 0;
else tyear = today.getFullYear();
}else tyear = today.getFullYear();
if(tpa.length>1){
if(tpa[1].length==2|tpa[1].length==1) tmonth = tpa[1] - 0 - 1;
else tmonth = today.getMonth();
}else tmonth = today.getMonth();
if(tpa.length>2){
if(tpa[2].length==2|tpa[2].length==1) tdate = tpa[2] - 0;
else tdate = today.getDate();
}else tdate = today.getDate();
if(tpa.length>3){
if(tpa[3].length==2|tpa[3].length==1) thour = tpa[3] - 0;
else thour = today.getHours();
}else thour = today.getHours();
if(tpa.length>4){
if(tpa[4].length==2|tpa[4].length==2) tminute = tpa[4] - 0;
else tminute = today.getMinutes();
}else tminute = today.getMinutes();
if(tpa.length>5){
if(tpa[5].length==2|tpa[5].length==2) tsecond = tpa[5] - 0;
else tsecond = today.getSeconds();
}else tsecond = today.getSeconds();
var tp = document.getElementById("dateSelectHour");
var ep = (thour<10?"0"+thour:thour+"");
tp.value = ep;
tp = document.getElementById("dateSelectMinute");
//tminute = (tminute - tminute%5);
ep = (tminute<10?"0"+tminute:tminute+"");
tp.value = ep;
tp = document.getElementById("dateSelectSecond");
//tsecond = (tsecond - tsecond%5);
ep = (tsecond<10?"0"+tsecond:tsecond+"");
tp.value = ep;
Make_Calendar(tyear,tmonth);
}
}else{
document.all.dateSelectDiv.style.visibility = "hidden";
}
}
//获取选取的时间
function getSelectTime(ele)
{ setSelectTime(ele);
if( this.myObj.getAttribute("isWin")!=null && this.myObj.getAttribute("isWin")=="true"){
returnValue = myObj.value;
window.close();
}
else{
document.all.dateSelectDiv.style.visibility = "hidden";
}
}//缺省的设置时间
function setSelectTime(ele){ var year = document.all.dateSelectYear.value;
var year_2 = new String(year.substr(2,2)); //两位年
var month = document.all.dateSelectMonth.value;
var day = (ele.innerHTML.length<2?"0"+ele.innerHTML:ele.innerHTML);
var tp = document.getElementById("dateSelectHour");
var hour = tp.value;
tp = document.getElementById("dateSelectMinute");
var minute = tp.value;
tp = document.getElementById("dateSelectSecond");
var second = tp.value;
dateformat = this.myObj.getAttribute("dateformat"); switch (dateformat) {
case "YYYY-MM-DD HH:MI:SS" :
vData = year + "-" + month + "-" + day + " "+hour+":"+minute+":"+second;
break;
case "YYYY-MM-DD HH:MI" :
vData = year + "-" + month + "-" + day + " "+hour+":"+minute;
break;
case "YYYY-MM-DD" :
vData = year + "-" + month + "-" + day;
break;
case "YYYY-MM" :
vData = year + "-" + month;
break;
case "YYYY" :
vData = year;
break;
case "YYYYMM" :
vData = year+ month;
break;
case "YYYYMMDD" :
vData = year+ month + day;
break;
case "YYYYMMDD HH:MI" :
vData = year+ month + day+ " "+hour+":"+minute;
break;
case "YYYYMMDD HH:MI:SS" :
vData = year+ month + day+ " "+hour+":"+minute+":"+second;
break;
case "MM-DD-YYYY HH:MI:SS" :
vData = month + "-" + day + "-" + year+ " "+hour+":"+minute+":"+second;
break;
case "MM-DD-YYYY" :
vData = month + "-" + day + "-" + year;
break; case "DD-MM-YYYY HH:MI:SS" :
vData = day + "-" + month + "-" + year+ " "+hour+":"+minute+":"+second;
break;
case "DD-MM-YYYY" :
vData = day + "-" + month + "-" + year;
break; default :
vData = year + "-" + vMonth + "-" + day;
}
myObj.value=vData;
}function closeDateSelectDiv()
{
document.all.dateSelectDiv.style.visibility = "hidden";
}//校验年份
function yearChecked(ele)
{
var temp = ele.value;
if(temp=="")
{
alert("请输入年份!");
ele.focus();
ele.select();
return;
}
if(temp.length!=4)
{
alert("请输入4位数字的年份!");
ele.focus();
ele.select();
return;
}
var ep = temp.match(/\D/g);
if(ep!=null)
{
alert("输入的年份应为正整数!");
ele.focus();
ele.select();
return;
}
changeYear();
}
function beginDrag(elementToDrag,event) { return;
//计算元素原左上角与鼠标的距离
//moveHandler要这值 var delatX=event.clientX-parseInt(elementToDrag.style.left);
var delatY=event.clientY-parseInt(elementToDrag.style.top); //注册响应mousemove和mousedown事件后的mouseup事件的处理程序 if(document.addEventListener) { //2级DOM事件模型
//注册捕捉事件处理程序。
document.addEventListener("mousemove",moveHandler,true);
document.addEventListener("mouseup",upHandler,true);
}
else if(document.attachEvent) { //IE5+ 的事件模型
//在IE事件模型中,我们不能捕捉事件,所以只有当事件起泡到这些处理程序时,
//它们才被触发. 假设不存在干涉元素, 处理了事件后它们就停止传播
document.attachEvent("onmousemove",moveHandler);
document.attachEvent("onmouseup",upHandler);
}
else { //IE4事件模型
//IE4我们不能使用attachEvent方法,所以存储了以前赋予的处理
//程序后,直接赋予新的事件处理程序,这样可以恢复旧的处理程序.
//注意,这样依赖于事件起泡.
var oldmovehandler=document.onmousemove;
var olduphandler=document.onmouseup;
document.onmousemove=moveHandler;
document.onmouseup=upHandler;
} //我们处理了该事件,不要再让其他元素看见.
if(event.stopPropagation) event.stopPropagation(); //2 级DOM
else event.cancelBubble=true; //IE
//下面禁止执行默认动作
if(event.preventDefault) event.preventDefault(); //2级DOM
else event.returnValue=false; //IE /* 这是元素被拖动时捕捉mousemove事件的处理程序.
* 它负责移动元素
*/
function moveHandler(e) {
if(!e) e=window.event; //IE事件模型;
//把元素移动到鼠标当前的位置,根据初始鼠标点击的偏移量进行调整
elementToDrag.style.left=(e.clientX-delatX)+"px";
elementToDrag.style.top=(e.clientY-delatY)+"px";
//不要再让其他元素看到该事件.
if(e.stopPropagation) e.stopPropagation(); //2级DOM
else e.cancelBubble=true; //IE
} /* 这是捕捉拖移结束最后发生的mouseup事件的处理程序.
*/
function upHandler(e) {
if(!e) e=window.event; //IE事件模型.
//注销捕捉事件程序.
if(document.removeEventListener) { //DOM事件模型
document.removeEventListener("mouseup",upHandler,true);
document.removeEventListener("mousemove",moveHandler,true);
}
else if(document.detachEvent) { //IE5+ 事件模型
document.detachEvent("onmouseup",upHandler);
document.detachEvent("onmousemove",moveHandler);
}
else { //IE事件模型
document.onmouseup=olduphandler;
document.onousemove=oldmovehandler;
}
//不要再让事件进一步传播.
if(e.stopPropagation) e.stopPropagation(); //2级DOM
else e.cancelBubble=true; //IE
}
}
CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
界面: http://qqwwee.com/
下载: http://qqwwee.com/csdn.rar 包含源代码