⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datetime.js

📁 数据保护没有什么特别的 主要实现图片上传功能 上传后生成的图片链接有 网页代码链接 论坛代码链接 图片原始地址-
💻 JS
字号:

var displayMonth,displayYear,displayValue,timeswitch,tformat,formElement;

/**
 * Created on 2006-3-24 9:54:10 by peng E-mail:andy@discuz.com
 * 
 * 此方法实现了:日期时间的选择功能,如果有传返回日期格式编号,
 * 则参照下列给定的格式返回时间格式,可以修改setDay()函数扩展返回日期格式
 * 
 * @param string formElt 填写时间域唯一名称或id值字符串
 * @param Object e 事件对像Event
 * @param string format 返回日期格式(选填):格式化分3类,可自已扩展。只是要返回YYYY-mm-dd的日期格式,无须填写此参数
 * 										10~20:之间代表只有日期格式的返回字符串例:
 * 														0: 代表返回YYYY-mm-dd
 * 														11:代表返回YYYY年mm月dd日
 * 														12:返回YYYY/mm/dd
 * 										20~30:之间代表只有日期格式的返回字符串例:
 * 														21:YYYY-mm-dd HH:ii:ss
 * 														22:YYYY年mm月dd日 HH时ii分ss秒
 * @return 如果没有传入格式化编号默认返回YYYY-mm-dd的日期格式,否则按format编号返回日期格式
 * @version 1.0
 */
 

function getDatePicker(formElt,e,format) {
	formElement=getobject(formElt);
	tformat=(!format ? 0:format);
//	var pElement=(!pElt ? document.body:getobject(pElt));
	var pElement=document.body;
	var div=document.getElementById("divHide");
  	if(!div) {
  		div = document.createElement("DIV");
  		div.id = "divHide";
  		div.style.cssText = "left:0;top:0;overflow:hidden;position:absolute;background-color:#FFF;visibility:hidden;border:1px solid #000000;";
		pElement.appendChild(div);
	}
	timeswitch = 20;
	if(tformat < timeswitch) {
		div.onblur=hidePicker;	//含有时间格式时加上鼠标离开层时隐藏事件
	}

	var time,dateValue=formElement.value;
	if(dateValue!='') {
		var re=new RegExp("-","g"); 
		dateValue=dateValue.replace(re,'/');
		time=new Date(dateValue);
	}
	if(!time || time=='NaN')time=new Date();
	displayMonth = time.getMonth();
	displayYear = time.getFullYear();
	displayValue = time;
	
	var style=div.style;
	var width=279,height=220;
	
	//计算Div在窗口中的位置
	if(document.documentElement && document.documentElement.scrollLeft){  
		scrollLeft = document.documentElement.scrollLeft;
		scrollTop=document.documentElement.scrollTop;
	}  
	else if (document.body){  
		scrollLeft = document.body.scrollLeft;
		scrollTop = document.body.scrollTop;
	} 
	style.left=((e.pageX?e.pageX:e.x)+scrollLeft+8)+"px";
	style.top=(e.pageY?e.pageY:(e.y+scrollTop))+"px";
	style.width=width+"px";
	style.height=height+"px";
		
	showPicker();
	style.visibility="visible";
	div.focus();
	drag(div);
}

function setEmpty(){
	formElement.value='';
	var time,dateValue=formElement.value;
	if(dateValue!='') {
		var re=new RegExp("-","g"); 
		dateValue=dateValue.replace(re,'/');
		time=new Date(dateValue);
	}
	if(!time || time=='NaN')time=new Date();
	displayMonth = time.getMonth();
	displayYear = time.getFullYear();
	displayValue = time;
	showPicker();
}

function hidePicker() {
	var div=document.getElementById("divHide");
	div.style.visibility = 'hidden';
}

function hidePicker() {
	var div=document.getElementById("divHide");
	div.style.visibility = 'hidden';
}

function showPicker() {
	/*********初始化当前时间************/ 
	var date;
	//判断目标域是否有值
	if(typeof displayValue == "object" ) {
		date = displayValue;
	} else {
		date=new Date();
	}
	var isThisYear = (displayYear == date.getFullYear());
	var isThisMonth = (isThisYear && displayMonth == date.getMonth());
	var today=(isThisYear && isThisMonth ? date.getDate():-1); 
	hour = date.getHours();
	second = date.getSeconds();
	minutes = date.getMinutes();
	var months = new Array("一月", "二月", "三月", "四月", "五月", "六月", "七月","八月", "九月", "十月", "十一月", "十二月");

	var html="<table id=tablePicker width=100% cellspacing=1 cellpadding=0 borderColorLight=#FFBE00 borderColorDark=#FFBE00 border=0 bgcolor=#ffffff style='font-size:12px;font-family:宋体;'>";
	//html+="<tr height=32px borderColor=#FFBE00 bgColor=#B8DAF8 align=center><td colSpan=7 style='padding-top:3px;cursor:move'>";
	html+="<tr height=32px borderColor=#FFBE00 style=\"background:url(/_res/images/time.jpg) no-repeat;\"><td colSpan=7 valign=top align=left style='padding:0;margin:0;padding-top:2px;'>";
	
	//display year
	//html+="<font style=\"cursor:pointer\"  color=white><img src=\"/resource/images/back.gif\" alt=\"上一个\"/></font>";
	//html+="<font style=\"cursor:pointer\" onmousedown=\"incYear(-1)\" color=white><img src=\"/resource/images/back.gif\" alt=\"上一个\"/></font>&nbsp";
	//html+="<font color=" + (isThisYear ? "#ED1C24":"black") + " onmouseover=\"incYear(-1)\">" + displayYear + "年</font>";
	//html+="&nbsp<font style='cursor:pointer' onmousedown=\"incYear(1)\" color=white><img src=\"/resource/images/next.gif\" alt=\"下一个\"/></font>";
	//html+="<font style='cursor:pointer' onmouseover=\"incYear(1)\" color=white><img src=\"/resource/images/next.gif\" alt=\"下一个\"/></font>&nbsp;&nbsp;&nbsp;";
	html+="<a href=\"javascript:incYear(-10)\" style=\"display:block;float:left;width:18px;height:20px;margin:0;\" title='减10年'></a>";
	html+="<a href=\"javascript:incYear(-1)\" style=\"display:block;float:left;width:15px;height:20px;\" title='减1年'></a>";
	html+="<font color=" + (isThisYear ? "#ED1C24":"black") + " style=\"display:block;float:left;width:44px;height:20px;line-height:20px;text-align:center;\">" + displayYear + "年</font>";
	html+="<a href=\"javascript:incYear(1)\" style=\"display:block;float:left;width:15px;height:20px;\" title='加1年'></a>";
	html+="<a href=\"javascript:incYear(10)\" style=\"display:block;float:left;width:18px;height:20px;\" title='加10年'></a>";
	
	
	//display month
	//html+="<font style=\"cursor:pointer\" onmousedown=\"incMonth(-1)\" color=white><img src=\"/resource/images/back.gif\" alt=\"下一个\"/></font>&nbsp";
	//if(displayMonth<10)html+="&nbsp";
	//html+="<font color=" + (isThisMonth ? "#ED1C24":"black") + ">" + months[displayMonth] + "</font>";
	//if(displayMonth<10)html+="&nbsp";
	//html+="&nbsp<font style=\"cursor:pointer\" onmousedown=\"incMonth(1)\" color=white><img src=\"/resource/images/next.gif\" alt=\"上一个\"/></font>";
	
	html+="<a href=\"javascript:incMonth(-4)\" style=\"display:block;float:left;width:18px;height:20px;\" title='减4月'></a>";
	html+="<a href=\"javascript:incMonth(-1)\" style=\"display:block;float:left;width:15px;height:20px;\" title='减1月'></a>";
	//if(displayMonth<10)html+="&nbsp";
	html+="<font color=" + (isThisMonth ? "#ED1C24":"black") + " style=\"display:block;float:left;width:44px;height:20px;line-height:20px;text-align:center;\">" + months[displayMonth] + "</font>";
	//if(displayMonth<10)html+="&nbsp";
	html+="<a href=\"javascript:incMonth(1)\" style=\"display:block;float:left;width:15px;height:20px;\" title='加1月'></a>";
	html+="<a href=\"javascript:incMonth(4)\" style=\"display:block;float:left;width:18px;height:20px;\" title='加4月'></a>";
	
	//目标输入框为只读时显示清除按钮
	if(formElement.readOnly) {
		//判断输入框是否为只读,如果是的话,显示清除按钮
		//html+="&nbsp;<span onclick='formElement.value=\"\";hidePicker();' style=\"cursor:pointer;\"><img src=\"/resource/images/btn_clear.gif\" /></span>";	
		//html+="&nbsp;<span onclick='formElement.value=\"\";' style=\"cursor:pointer;\"><img src=\"/resource/images/btn_clear.gif\" alt=\"清空\"/></span>";
		html+="<a href='javascript:setEmpty();' style=\"display:block;float:left;width:23px;height:20px;margin-left:11px;\" title='清空'></a>";	
	}
	//if(tformat > timeswitch) {
		//html+="&nbsp;<span onclick='hidePicker();' style=\"cursor:pointer;\"><img src=\"/resource/images/btn_close.gif\" alt=\"关闭\"/></span>";
	html+="<a href='javascript:hidePicker();' style=\"display:block;float:left;width:21px;height:20px;\" title='关闭'></a>";	
	//}
	html+="</td></tr>";
	//display day
	html+="<tr height=20px align=center><td style=\"padding-top:3px;BORDER-LEFT:none;BORDER-RIGHT:none\"><font color=\"#ED1C24\">日</font></td><td class=week>一</td><td class=week>二</td><td class=week>三</td><td class=week>四</td><td class=week>五</td><td class=week><font color=\"green\">六</font></td</tr>";

	var startDay=new Date(displayYear,displayMonth,1).getDay();
	var dayOfMonthOfFirstSunday = (7 - startDay + 1);
	var intDaysInMonth=getDays(displayMonth, displayYear);
	for (var intWeek = 0; intWeek < 6; intWeek++) {
		html+="<tr height=18px align=center>";
		var dayOfMonth;
	    for (var intDay = 0; intDay < 7; intDay++) {
	     	dayOfMonth = (intWeek * 7) + intDay + dayOfMonthOfFirstSunday - 7;
		 	if (dayOfMonth <= 0) {
	          		html+="<td height=18px borderColor=#ffffff>&nbsp</td>";
			} else if(dayOfMonth <= intDaysInMonth) {
		   		html+="<td borderColor=#ffffff "+(dayOfMonth==today ? "bgcolor=#ffcc66":"")+" onmousedown=\"setDay(" + dayOfMonth + ")\"  onmouseover=\"this.style.background='#ccc'\" onmouseout=\"this.style.background='"+(dayOfMonth==today ? "#ffcc66":"#fff")+"'\"";
		   		html+="style=\"cursor:pointer;color:" + (dayOfMonth==today ? "red":"black") + "\">" + dayOfMonth + "</td>";
			}
		}
		if(intWeek+1==6 && tformat > timeswitch)
			html+="<td colspan='7' borderColor=#ffffff><div style='margin:-1.5px;'><input maxlength='2' onmousedown='this.select()' name='hour' id='hour' style='border: 1px solid #CCCCCC;font-size:12px;font-family:宋体;line-height:20px;height:20px;width:20px;text-align:center;' size='1' value='"+ (hour<10?'0'+hour:hour) +"' type='text'> 时 <input maxlength='2' onmousedown='this.select()' value='"+ (minutes<10?'0'+minutes:minutes) +"' style='border: 1px solid #CCCCCC;font-size:12px;font-family:宋体;line-height:20px;height:20px;text-align:center;width:20px;' name='minutes' size='1' type='text'> 分 <input maxlength='2' onmousedown='this.select()' name='second' style='border: 1px solid #CCCCCC;font-size:12px;line-height:20px;height:20px;text-align:center;width:20px;' value='"+ (second<10?'0'+second:second) +"' size='1' type='text'> 秒 </div></td>";
		html+="</tr>";
	}
	html+="</table>";
	document.getElementById("divHide").innerHTML=html;
}

function getDays(month, year) {
	if (1==month)return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? 29 : 28;
	var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
	return daysInMonth[month];
}

function setDay(day) {
	//整理年月日时分秒
	var y,m,d,h,i,s;
	y = displayYear;
	m = (displayMonth<9 ? "0":"") + (displayMonth+1);
	d = (day<10 ? "0":"") + day;
	if(tformat && tformat > timeswitch) {
		re = /[^\d]/g;            // 创建正则表达式模式。
		hour = document.getElementsByName("hour")[0];
		minutes = document.getElementsByName("minutes")[0];
		second = document.getElementsByName("second")[0];
		if(re.test(hour.value) || Math.abs(parseInt(hour.value))>23){
			alert("时间出错:小时只能是0~23的整数");
			hour.focus();
			hour.select();
			return false;
		}
		if(re.test(minutes.value) || Math.abs(parseInt(minutes.value))>59){
			alert("时间出错:分钟只能是0~59的整数");
			minutes.focus();
			minutes.select();
			return false;
		}
		if(re.test(second.value) || Math.abs(parseInt(second.value))>59){
			alert("时间出错:分钟只能是0~59的整数");
			second.focus();
			second.select();
			return false;
		}
		h = (hour.value.length < 2 ? "0" : "") + hour.value;
		i = (minutes.value.length < 2 ? "0":"") + minutes.value;
		s = (second.value.length < 2 ? "0":"") + second.value;
	}
	var formEV="";

	//根据要返回的数据类型组合数据
	if(tformat == 0) {
		formEV = y + '-' + m + '-' + d;
	} else if(tformat == 11) {
		formEV = y + '年' + m + '月' + d + '日';
	} else if(tformat == 12) {
		formEV = y + '/' + m + '/' + d;
	} else if(tformat == 21) {
		formEV = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
	} else if(tformat == 22) {
		formEV = y + '年' + m + '月' + d + '日 ' + h + '时' + i + '分' + s + '秒';
	}else{
		formEV = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
	}
	formElement.value = formEV;
	formElement.focus();
	hidePicker();
}
/**
 * 月份增、减操作
 */
function incMonth(delta) {
	displayMonth+=delta;
	if (displayMonth>=12) {
		displayMonth = 0;
		incYear(1);
	} else if(displayMonth<=-1) {
	     displayMonth = 11;
	     incYear(-1);
	} else {
		showPicker();
	}
}
/**
 * 年份增、减操作
 */
function incYear(delta,eltName) {
	displayYear+=delta;
	showPicker();
}

/**
 * 获取给定ID或name的字符串,获取对象
 * 
 * @param string 对象ID或名称
 * @return mixed null表示没有找到对象,object 表示找到相对应的对象
 */
function getobject(idname) {
	if (document.getElementById) {
		return document.getElementById(idname);
	} else if (document.all) {
		return document.all[idname];
	} else if (document.layers) {
		return document.layers[idname];
	} else {
		return null;
	}
}

/**
 * 实现层的拖曳操作
 */
function drag(o){
    o.onmousedown = function(a){
        var d = document;
        if(!a) a = window.event;
        if(o.setCapture)
            o.setCapture();
        else if(window.captureEvents)
            window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);

		var re = new RegExp("px","ig");
		//计算当前鼠标的坐标点离日期采集器层的零点坐标的X间距
        var x = (a.pageX?a.pageX:a.x) - parseInt(o.style.left.replace(re,""));
        //计算当前鼠标的坐标点离日期采集器层的零点坐标的Y间距
        var y = (a.pageY?a.pageY:a.y) - parseInt(o.style.top.replace(re,""));
        
        d.onmousemove = function(a){
            if(!a)a=window.event;
            if(!a.pageX)a.pageX=a.clientX;
            if(!a.pageY)a.pageY=a.clientY;
            var tx=a.pageX-x,ty=a.pageY-y;
            o.style.left = tx + "px";
            o.style.top = ty + "px";
        };
        
        d.onmouseup=function(){
            if(o.releaseCapture)
                o.releaseCapture();
            else if(window.captureEvents)
                window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
            d.onmousemove=null;
            d.onmouseup=null;
        };
    };
}

function date(dateid,datevalue){
	var html="<input type=\"text\" name=\""+dateid+"\" id=\""+dateid+"\" readonly=\"readonly\" value=\""+datevalue+"\" title=\"点击右边的图标选取时间\"  onClick=\"getDatePicker('"+dateid+"', event,0)\"/>";
	document.write(html);
}

function time(timeid,timevalue){
	var html="<input type=\"text\" name=\""+timeid+"\" id=\""+timeid+"\" readonly=\"readonly\" value=\""+timevalue+"\" title=\"点击右边的图标选取时间\" onClick=\"getDatePicker('"+timeid+"', event,21)\"/>";
	document.write(html);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -