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

📄 time.js

📁 泛微协同办公系统标准版E-office V5.5的源代码内含泛微办公系统V5.5自动注册文件。
💻 JS
字号:
/**
 * Systemname:     Teems
 * Filename:       $path/$name
 * Function:       $function
 * Encoding:       $_lang['encoding']
 * Author:         xiulin.liu www.weaver.com.cn
 * Date:           2007-3-5
 * Version:        1.x
 * Teems Version:  1.x
*/

/*
extend function for string 
*/
String.prototype.toHm = function(x,p) {
  if(x == null) x = ":";
  if(p == null) p = "hi";
  var a = this.split(x);
  var h = parseInt(a[p.indexOf("h")],10); //10 十进制
  var i = parseInt(a[p.indexOf("i")],10);
  var hm = new Array();
  hm[0] = h;
  hm[1] = i;

  return hm;
}


/*
class CallTime ,selected hours & minutes
*/
function CallTime(beginHM,endHM,showWord,lang,objBdate,objEdate){
	this.beginHM = "00:00";
	this.endHM ="24:00";
	this.lang = 0;						//0(中文) | 1(英文)
	this.showWord = 0;
	var today = new Date();
	var toDayYear = today.getFullYear();
	var toDayMonth = today.getMonth()+1;
	toDayMonth = (toDayMonth)>10?toDayMonth:'0'+toDayMonth;
	var toDayDa = today.getDate()>10?today.getDate():'0'+today.getDate();
	todayDate = toDayYear+'-'+toDayMonth+'-'+toDayDa;
	this.objBdate = todayDate;
	this.objEdate = todayDate;
	if (beginHM != null && trim(beginHM) != ""){ //注意 trim在common.js定义
		this.beginHM = beginHM;
	}
	if (endHM != null){
		this.endHM = endHM;
	}

	if (showWord != null){
		this.showWord = showWord
	}

	if (objBdate != null && trim(objBdate) != ""){
		this.objBdate = objBdate;
	}

	if (objEdate != null && trim(objEdate) != ""){
		this.objEdate = objEdate;
	}

	if (lang != null){
		this.lang = lang
	}

	if (this.showWord == 1){
		var intDays = betterDate(this.objEdate,this.objBdate);
		if (intDays<0){
			this.showWord = 0;
			this.beginHM = '00:00';;
		}
	}

	this.panel = document.getElementById("timePanel");
	this.date = new Date();
	this.hour = this.date.getHours();
	this.minute = this.date.getMinutes();
	this.draw();
	this.bindHour();

}
CallTime.warpxy = {
  "x"   : [10],
  "y"  : [2]
}

CallTime.language = {
  "day"   : [["天"], ["days"]],
  "hour"   : [["小时"], ["hours"]],
  "minute"  : [["分"], ["minutes"]]
}

/*
x y absolute position
*/
CallTime.prototype.getAbsPoint = function (e){
	var x = e.offsetLeft;
	var y = e.offsetTop;
	while(e = e.offsetParent){
		x += e.offsetLeft;
		y += e.offsetTop;
	}
	return {"x": x, "y": y};
}


/*
print panel
*/
CallTime.prototype.show = function(timeControl){
	if (timeControl == null){
		throw new Error("arguments[0] is necessary")
	}
	this.timeControl = timeControl;

	if (timeControl.value.length > 0){
		var hm = timeControl.value.toHm();
		this.hour = hm[0];
		this.minute = hm[1];
		//this.changeSelect();
	}

	var nowdate = new Date();
	nowh = nowdate.getHours();
	nowm = nowdate.getMinutes();
	if (trim(this.timeControl.value) == ''){
		//default value
		if (this.showWord!=1){
			nowm_s = nowm <=30?'00':'30';
			nowh_s = (nowh.toString().length==1)?'0'+nowh:nowh;
			this.timeControl.value = nowh_s+':'+nowm_s;
		}
		else{
			bhm		= this.beginHM.toHm();
			bhour	= bhm[0];
			bminute = bhm[1];

			if (bminute>=30){
				nowm_s = '00';
				nowh_s = bhour+1;
			}
			else{
				nowm_s = '30';
				nowh_s = bhour;
			}
			nowh_s = nowh_s.toString().length==1?'0'+nowh_s:nowh_s;
			this.timeControl.value = nowh_s+':'+nowm_s;
		}

	}

	var xy = this.getAbsPoint(timeControl);
	this.panel.style.left = (xy.x - 4)+ "px";//why 4 warpx
	this.panel.style.top = (xy.y + timeControl.offsetHeight + 2) + "px"; //why 2 warpy
	if (this.panel.style.visibility == "hidden"){
		this.panel.style.visibility = "visible";
	}
	else{
		this.panel.style.visibility = "hidden";
	}
	this.changeSelect();
	

}

CallTime.prototype.getvalue = function() {
	calltime = this;
	this.timeControl.value = this.form.hourminute.value;
	calltime.hide();
}

CallTime.prototype.hide = function() {
	this.panel.style.visibility = "hidden";
}

/*
draw this hour & minute select option
*/
CallTime.prototype.draw = function() {
	calltime = this;
	var bhm,ehm;
	var mvAry = [];
	mvAry[mvAry.length]  = '  <form name="calltimeform" style="margin: 0px;">';
	mvAry[mvAry.length]  = '     <table width="100%" border="0" cellpadding="2px" cellspacing="0" bgcolor="#77B5F9">';
	mvAry[mvAry.length]  = '		<tr align="left" style="background:url(/images/calendar/bg.jpg);"><th><select name="hourminute" id="hourminute" style="width:160px">';

	mvAry[mvAry.length]  = '		</select></th><th><img src="/images/calendar/close_cad.gif"  onclick="calltime.hide();" border="0" alt="close" style="cursor:hand;"></th></tr>';
	mvAry[mvAry.length]  = '     </table>';
	mvAry[mvAry.length]  = '  </form>';

	this.panel.innerHTML = mvAry.join("");
	this.form = document.forms["calltimeform"];
	this.form.hourminute.onchange = function () {calltime.getvalue();}
	this.form.hourminute.onselect = function () {calltime.getvalue();}

}

/*
bind the select hourminute
*/
CallTime.prototype.bindHour = function() {
	var intDays = betterDate(this.objEdate,this.objBdate);
	var objform = this.form.hourminute;
	objform.length = 0;
	bhm		= this.beginHM.toHm();
	bhour	= bhm[0];
	bminute = bhm[1];
	ehm		= this.endHM.toHm();
	ehour	= ehm[0];
	eminute = ehm[1];

	var nowdate = new Date();

	nowh = nowdate.getHours();
	nowm = nowdate.getMinutes();

	var btmphour = bhour;
	var btmpminute = bminute;
	var etmphour = ehour;

	if (intDays > 0){
		btmphour = 0;
		btmpminute = 0;
	}

	var h,len,wstr,s1,s2,diffdhi;
	for (var i=btmphour;i<=etmphour ;i++ ){
		h = i<10? '0' + i:i;
		wstr = "";
		s1 = 1;
		s2 = 1;
		if (this.showWord == 1){
			diffdhi = this.diffTime(intDays,i,0);
			str_d = diffdhi.d;
			str_i = diffdhi.h;
			str_m = diffdhi.i;
			str_d_d = str_d != 0?str_d + CallTime.language["day"][this.lang]:'';
			str_i_h = str_i != 0?str_i + CallTime.language["hour"][this.lang]:'';
			str_m_i = str_m != 0?str_m + CallTime.language["minute"][this.lang]:'';
			wstr = ' ('+ str_d_d + str_i_h + str_m_i +')';
		}
		if (i==btmphour && this.showWord == 1 && intDays <= 0){
			s1 = 0;
			s2 = bminute >= 30?0:1;
		}
		s2 = i == 24?0:s2;// 不显示24:30
		if(this.showWord != 1 && i == 24){
			s1=0;
			s2=0;
		}

		if (s1==1){
			objform.options[objform.length] = new Option(h + ':00' + wstr , h + ':00');
		}

		if (this.showWord == 1){
			diffdhi = this.diffTime(intDays,i,30);
			str_d = diffdhi.d;
			str_i = diffdhi.h;
			str_m = diffdhi.i;
			str_d_d = str_d != 0?str_d + CallTime.language["day"][this.lang]:'';
			str_i_h = str_i != 0?str_i + CallTime.language["hour"][this.lang]:'';
			str_m_i = str_m != 0?str_m + CallTime.language["minute"][this.lang]:'';
			wstr = ' ('+ str_d_d + str_i_h + str_m_i +')';
		}
		if (s2==1){
			objform.options[objform.length] = new Option(h + ':30' + wstr, h + ':30');
		}

		if (nowh  == h && this.showWord != 1){
			len = (i-btmphour)*2;
			//alert(len);
			objform[len].selected = true;
		}
	}
}

/*
*/
CallTime.prototype.diffTime = function(d,h,i) {
	bhm		= this.beginHM.toHm();
	bhour	= bhm[0];
	bminute = bhm[1];
	if (i<bminute){
		h--;
		var di = 60+i-bminute;
	}
	else{
		var di = i-bminute;
	}
	if (h<bhour){
		d--;
		var dh = 24+h-bhour;
	}
	else{
		var dh = h-bhour;
	}

	if (d>0 && dh == 24){
		d++;
		dh =0;
	}

	return {"d":d,"h":dh,"i":di};
}

/*
*/
CallTime.prototype.changeSelect = function() {
	var objhm = this.form.hourminute;
	for (var i= 0; i < objhm.length; i++){
		thm		= this.timeControl.value.toHm();
		thour	= thm[0];
		tminute = thm[1];
		ohm		= objhm.options[i].value.toHm();
		ohour	= ohm[0];
		ominute = ohm[1];

		var rev = (parseInt(ohour,10)-parseInt(thour,10))*60+(parseInt(ominute,10)-parseInt(tminute,10));
		if (rev>=0 && rev<30){
			objhm[i].selected = true;
			break;
		}

	}
}

document.write('<div id="timePanel" style="position:  absolute ;visibility: hidden;z-index: 9999;background-color: #FFFFFF;border: 2px solid #99CCFF;width:98%;padding:2px;margin-left:5px;width:200px;"></div>');
//var calltime = new CallTime();
//calltime.show(objHm);

⌨️ 快捷键说明

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