`
chengyu2099
  • 浏览: 469039 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JS 时间控件

阅读更多
<script language="javascript">
	var	fixedX = -1			// x position (-1 if to appear below control)
	var	fixedY = -1			// y position (-1 if to appear below control)
	var startAt = 1			// 0 - sunday ; 1 - monday
	var showWeekNumber = 1	// 0 - don't show; 1 - show
	var showToday = 1		// 0 - don't show; 1 - show
	var imgDir = "images/"	// directory for images ... e.g. var imgDir="/img/"

	var gotoString = "返回当前月份"
	var todayString = "今天是:"
	var weekString = "周数"
	var scrollLeftMessage = "单击滚动到上一月,长按持续滚动."
	var scrollRightMessage = "单击滚动到下一月,长按持续滚动."
	var selectMonthMessage = "单击选择月份."
	var selectYearMessage = "单击选择年份."
	var selectDateMessage = "选择 [date] 作为日期." // do not replace [date], it will be 
	replaced by date.

	var	crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected,dateSelected, 
	omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, 
	intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow,dateFormat, 
	nStartingYear
	var	bPageLoaded=false
	var	ie=document.all
	var	dom=document.getElementById
	var	ns4=document.layers
	var	today =	new	Date()
	var	dateNow	 = today.getDate()
	var	monthNow = today.getMonth()
	var	yearNow	 = today.getYear()
	var	imgsrc = new 
	Array("drop1.gif","drop2.gif","left1.gif","left2.gif","right1.gif","right2.gif")
	var	img	= new Array()

	var bShow = false;

    /* hides <select> and <applet> objects (for IE only) */
    function hideElement( elmID, overDiv )
    {
      if( ie )
      {
        for( i = 0; i < document.all.tags( elmID ).length; i++ )
        {
          obj = document.all.tags( elmID )[i];
          if( !obj || !obj.offsetParent )
          {
            continue;
          }

          // Find the element's offsetTop and offsetLeft relative to the BODY tag.
          objLeft   = obj.offsetLeft;
          objTop    = obj.offsetTop;
          objParent = obj.offsetParent;

          while( objParent.tagName.toUpperCase() != "BODY" )
          {
            objLeft  += objParent.offsetLeft;
            objTop   += objParent.offsetTop;
            objParent = objParent.offsetParent;
          }

          objHeight = obj.offsetHeight;
          objWidth = obj.offsetWidth;

          if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
          else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
          else if( overDiv.offsetTop >= ( objTop + objHeight ));
          else if( overDiv.offsetLeft >= ( objLeft + objWidth ));
          else
          {
            obj.style.visibility = "hidden";
          }
        }
      }
    }

    /*
    * unhides <select> and <applet> objects (for IE only)
    */
    function showElement( elmID )
    {
      if( ie )
      {
        for( i = 0; i < document.all.tags( elmID ).length; i++ )
        {
          obj = document.all.tags( elmID )[i];

          if( !obj || !obj.offsetParent )
          {
            continue;
          }

          obj.style.visibility = "";
        }
      }
    }

	function HolidayRec (d, m, y, desc)
	{
		this.d = d
		this.m = m
		this.y = y
		this.desc = desc
	}

	var HolidaysCounter = 0
	var Holidays = new Array()

	function addHoliday (d, m, y, desc)
	{
		Holidays[HolidaysCounter++] = new HolidayRec ( d, m, y, desc )
	}

	if (dom)
	{
		for	(i=0;i<imgsrc.length;i++)
		{
			img[i] = new Image
			img[i].src = imgDir + imgsrc[i]
		}
		document.write ("<div onclick='bShow=true' id='calendar'	
		style='z-index:+999;position:absolute;visibility:hidden;'><table	
		width="+((showWeekNumber==1)?150:90)+" 
		style='font-family:arial;font-size:0px;border-width:0;border-style:solid;border-c
		olor:#BDDBEE;font-family:arial; font-size:11px}' bgcolor='#ffffff'><tr 
		bgcolor='#ABC8E8'><td><table width='"+((showWeekNumber==1)?228:208)+"'><tr><td 
		style='padding:2px;font-family:arial; font-size:11px;'><font 
		color='#ffffff'><B><span id='caption'></span></B></font></td><td align=right><a 
		href='javascript:hideCalendar()'><IMG SRC='"+imgDir+"close.gif' WIDTH='15' 
		HEIGHT='13' BORDER='0' ALT='关闭窗口'></a></td></tr></table></td></tr><tr><td 
		style='padding:5px' bgcolor=#F0F9FF><span id='content'></span></td></tr>")

		if (showToday==1)
		{
			document.write ("<tr bgcolor=#F0F9FF><td 
			style='padding:1px'align=center><span id='lblToday'></span></td></tr>")
		}

		document.write ("</table></div><div id='selectMonth' 
		style='z-index:+999;position:absolute;visibility:hidden;'></div><div 
		id='selectYear' 
		style='z-index:+999;position:absolute;visibility:hidden;'></div>");
	}

	var	monthName =	new	Array("一月","二月","三月","四月","五月","六月","七月","
	八月","九月","十月","十一月","十二月")
	var	monthName2 = new Array("一月","二月","三月","四月","五月","六月","七月","八月","
	九月","十月","十一月","十二月")
	if (startAt==0)
	{
		dayName = new Array	("日","一","二","三","四","五","六")
	}
	else
	{
		dayName = new Array	("一","二","三","四","五","六","<font color=red>日
		</font>")
	}
	var	styleAnchor="text-decoration:none;color:black;"
	var	styleLightBorder="border-style:solid;border-width:1px;border-color:#a0a0a0;"

	function swapImage(srcImg, destImg){
		if (ie)	{ document.getElementById(srcImg).setAttribute("src",imgDir +destImg) }
	}

	function init()	{
		if (!ns4)
		{
			if (!ie) { yearNow += 1900	}

			crossobj=(dom)?document.getElementById("calendar").style : 
			ie?document.all.calendar : document.calendar
			hideCalendar()

			crossMonthObj=(dom)?document.getElementById("selectMonth").style 
			:ie?document.all.selectMonth	: document.selectMonth

			crossYearObj=(dom)?document.getElementById("selectYear").style : 
			ie?document.all.selectYear : document.selectYear

			monthConstructed=false;
			yearConstructed=false;

			if (showToday==1)
			{
			document.getElementById("lblToday").innerHTML =	todayString + "<a 
			onmousemove='window.status=\""+gotoString+"\"' 
			onmouseout='window.status=\"\"'title='"+gotoString+"' 
			style='"+styleAnchor+"'href='javascript:monthSelected=monthNow;yearSelect
			ed=yearNow;constructCalendar();'>星
			期"+dayName[(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+", " 
			+ dateNow + "号 "+ monthName[monthNow].substring(0,3)	+ "	" +	
			yearNow	+ "年</a>"
			}

			sHTML1="<span id='spanLeft'	
			style='border-style:solid;border-width:1;border-color:#3366FF;cursor:poin
			ter' 
			onmouseover='swapImage(\"changeLeft\",\"left2.gif\");this.style.borderCol
			or=\"#88AAFF\";window.status=\""+scrollLeftMessage+"\"' 
			onclick='javascript:decMonth()' 
			onmouseout='clearInterval(intervalID1);swapImage(\"changeLeft\",\"left1.g
			if\");this.style.borderColor=\"#3366FF\";window.status=\"\"'onmousedown='
			clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartDecMonth()\",500)'o
			nmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG 
			id='changeLeft'SRC='"+imgDir+"left1.gif' width=10 height=11 
			BORDER=0>&nbsp</span>&nbsp;"
			sHTML1+="<span id='spanRight' 
			style='border-style:solid;border-width:1;border-color:#3366FF;cursor:poin
			ter'	
			onmouseover='swapImage(\"changeRight\",\"right2.gif\");this.style.borderC
			olor=\"#88AAFF\";window.status=\""+scrollRightMessage+"\"' 
			onmouseout='clearInterval(intervalID1);swapImage(\"changeRight\",\"right1
			.gif\");this.style.borderColor=\"#3366FF\";window.status=\"\"'onclick='in
			cMonth()' 
			onmousedown='clearTimeout(timeoutID1);timeoutID1=setTimeout(\"StartIncMon
			th()\",500)'	
			onmouseup='clearTimeout(timeoutID1);clearInterval(intervalID1)'>&nbsp<IMG 
			id='changeRight' SRC='"+imgDir+"right1.gif'	width=10 height=11 
			BORDER=0>&nbsp</span>&nbsp"
			sHTML1+="<span id='spanMonth' 
			style='border-style:solid;border-width:1;border-color:#3366FF;cursor:poin
			ter'	
			onmouseover='swapImage(\"changeMonth\",\"drop2.gif\");this.style.borderCo
			lor=\"#88AAFF\";window.status=\""+selectMonthMessage+"\"' 
			onmouseout='swapImage(\"changeMonth\",\"drop1.gif\");this.style.borderCol
			or=\"#3366FF\";window.status=\"\"'onclick='popUpMonth()'></span>&nbsp;"
			sHTML1+="<span id='spanYear' 
			style='border-style:solid;border-width:1;border-color:#3366FF;cursor:poin
			ter' 
			onmouseover='swapImage(\"changeYear\",\"drop2.gif\");this.style.borderCol
			or=\"#88AAFF\";window.status=\""+selectYearMessage+"\"'	
			onmouseout='swapImage(\"changeYear\",\"drop1.gif\");this.style.borderColo
			r=\"#3366FF\";window.status=\"\"'onclick='popUpYear()'></span>&nbsp;"
			document.getElementById("caption").innerHTML  =	sHTML1
			bPageLoaded=true
		}
	}

	function hideCalendar()	{
		crossobj.visibility="hidden"
		if (crossMonthObj != null){crossMonthObj.visibility="hidden"}
		if (crossYearObj !=	null){crossYearObj.visibility="hidden"}

	    showElement( 'SELECT' );
		showElement( 'APPLET' );
	}

	function padZero(num) {
		return (num	< 10)? '0' + num : num ;
	}

	function constructDate(d,m,y)
	{
		sTmp = dateFormat
		sTmp = sTmp.replace	("dd","<e>")
		sTmp = sTmp.replace	("d","<d>")
		sTmp = sTmp.replace	("<e>",padZero(d))
		sTmp = sTmp.replace	("<d>",d)
		sTmp = sTmp.replace	("mmmm","<p>")
		sTmp = sTmp.replace	("mmm","<o>")
		sTmp = sTmp.replace	("mm","<n>")
		sTmp = sTmp.replace	("m","<m>")
		sTmp = sTmp.replace	("<m>",m+1)
		sTmp = sTmp.replace	("<n>",padZero(m+1))
		sTmp = sTmp.replace	("<o>",monthName[m])
		sTmp = sTmp.replace	("<p>",monthName2[m])
		sTmp = sTmp.replace	("yyyy",y)
		return sTmp.replace ("yy",padZero(y%100))
	}

	function constructDate2(d,m,y)
	{
		sTmp = dateFormat
		sTmp = sTmp.replace	("dd","<e>")
		sTmp = sTmp.replace	("d","<d>")
		sTmp = sTmp.replace	("<e>",padZero(d))
		sTmp = sTmp.replace	("<d>",d)
		sTmp = sTmp.replace	("mmmm","<p>")
		sTmp = sTmp.replace	("mmm","<o>")
		sTmp = sTmp.replace	("mm","<n>")
		sTmp = sTmp.replace	("m","<m>")
		sTmp = sTmp.replace	("<m>",m+1)
		sTmp = sTmp.replace	("<n>",padZero(m+1))
		sTmp = sTmp.replace	("<o>",monthName[m])
		sTmp = sTmp.replace	("<p>",monthName2[m])
		sTmp = sTmp.replace	("yyyy",y+3)
		return sTmp.replace ("yy",padZero(y%100))
	}

	function closeCalendar() {
		var	sTmp

		hideCalendar();
		ctlToPlaceValue.value =	constructDate(dateSelected,monthSelected,yearSelected)


		if(document.all['txtExpiryDate']!=null)
		{
			document.all['txtExpiryDate'].value=constructDate2(dateSelected,monthSele
			cted,yearSelected)
		}
	}

	/*** Month Pulldown	***/

	function StartDecMonth()
	{
		intervalID1=setInterval("decMonth()",80)
	}

	function StartIncMonth()
	{
		intervalID1=setInterval("incMonth()",80)
	}

	function incMonth () {
		monthSelected++
		if (monthSelected>11) {
			monthSelected=0
			yearSelected++
		}
		constructCalendar()
	}

	function decMonth () {
		monthSelected--
		if (monthSelected<0) {
			monthSelected=11
			yearSelected--
		}
		constructCalendar()
	}

	function constructMonth() {
		popDownYear()
		if (!monthConstructed) {
			sHTML =	""
			for	(i=0; i<12;	i++) {
				sName =	monthName[i];
				if (i==monthSelected){
					sName =	"<B>" +	sName +	"</B>"
				}
				sHTML += "<tr><td id='m" + i + 
				"'onmouseover='this.style.backgroundColor=\"#FFCC99\"'onmouseout=
				'this.style.backgroundColor=\"\"' 
				style='cursor:pointer'onclick='monthConstructed=false;monthSelect
				ed=" + i + 
				";constructCalendar();popDownMonth();event.cancelBubble=true'>&nb
				sp;" + sName + "&nbsp;</td></tr>"
			}

			document.getElementById("selectMonth").innerHTML = "<table width=70 
			style='font-family:arial; font-size:12px; border-width:1; 
			border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' 
			cellspacing=0 
			onmouseover='clearTimeout(timeoutID1)'onmouseout='clearTimeout(timeoutID1
			);timeoutID1=setTimeout(\"popDownMonth()\",100);event.cancelBubble=true'>
			" +	sHTML +	"</table>"
			monthConstructed=true
		}
	}

	function popUpMonth() {
		constructMonth()
		crossMonthObj.visibility = (dom||ie)? "visible"	: "show"
		crossMonthObj.left = parseInt(crossobj.left) + 50
		crossMonthObj.top =	parseInt(crossobj.top) + 26

		hideElement( 'SELECT', document.getElementById("selectMonth") );
		hideElement( 'APPLET', document.getElementById("selectMonth") );


	}

	function popDownMonth()	{
		crossMonthObj.visibility= "hidden"
	}

	/*** Year Pulldown ***/

	function incYear() {
		for	(i=0; i<7; i++){
			newYear	= (i+nStartingYear)+1
			if (newYear==yearSelected)
			{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
			else
			{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
			document.getElementById("y"+i).innerHTML = txtYear
		}
		nStartingYear ++;
		bShow=true
	}

	function decYear() {
		for	(i=0; i<7; i++){
			newYear	= (i+nStartingYear)-1
			if (newYear==yearSelected)
			{ txtYear =	"&nbsp;<B>"	+ newYear +	"</B>&nbsp;" }
			else
			{ txtYear =	"&nbsp;" + newYear + "&nbsp;" }
			document.getElementById("y"+i).innerHTML = txtYear
		}
		nStartingYear --;
		bShow=true
	}

	function selectYear(nYear) {
		yearSelected=parseInt(nYear+nStartingYear);
		yearConstructed=false;
		constructCalendar();
		popDownYear();
	}

	function constructYear() {
		popDownMonth()
		sHTML =	""
		if (!yearConstructed) {

			sHTML =	"<tr><td 
			align='center'onmouseover='this.style.backgroundColor=\"#FFCC99\"' 
			onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' 
			style='cursor:pointer'onmousedown='clearInterval(intervalID1);intervalID1
			=setInterval(\"decYear()\",30)'onmouseup='clearInterval(intervalID1)'>-</
			td></tr>"
			j =	0
			nStartingYear =	yearSelected-3
			for	(i=(yearSelected-3); i<=(yearSelected+3); i++) {
				sName =	i;
				if (i==yearSelected){
					sName =	"<B>" +	sName +	"</B>"
				}

				sHTML += "<tr><td id='y" + j + 
				"'onmouseover='this.style.backgroundColor=\"#FFCC99\"'onmouseout=
				'this.style.backgroundColor=\"\"' style='cursor:pointer' 
				onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + 
				sName + "&nbsp;</td></tr>"
				j ++;
			}
			sHTML += "<tr><td 
			align='center'onmouseover='this.style.backgroundColor=\"#FFCC99\"' 
			onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' 
			style='cursor:pointer'onmousedown='clearInterval(intervalID2);intervalID2
			=setInterval(\"incYear()\",30)'onmouseup='clearInterval(intervalID2)'>+</
			td></tr>"
			document.getElementById("selectYear").innerHTML	= "<table width=44 
			style='font-family:arial; font-size:11px; border-width:1; 
			border-style:solid; border-color:#a0a0a0;'	bgcolor='#FFFFDD' 
			onmouseover='clearTimeout(timeoutID2)'onmouseout='clearTimeout(timeoutID2
			);timeoutID2=setTimeout(\"popDownYear()\",100)'cellspacing=0>"	+ sHTML	+ 
			"</table>"
			yearConstructed	= true
		}
	}

	function popDownYear() {
		clearInterval(intervalID1)
		clearTimeout(timeoutID1)
		clearInterval(intervalID2)
		clearTimeout(timeoutID2)
		crossYearObj.visibility= "hidden"
	}

	function popUpYear() {
		var	leftOffset

		constructYear()
		crossYearObj.visibility	= (dom||ie)? "visible" : "show"
		leftOffset = parseInt(crossobj.left) + 
		document.getElementById("spanYear").offsetLeft
		if (ie)
		{
			leftOffset += 6
		}
		crossYearObj.left =	leftOffset
		crossYearObj.top = parseInt(crossobj.top) +	26
	}

	/*** calendar ***/
   function WeekNbr(n) {
      // Algorithm used:
      // From Klaus Tondering's Calendar document (The Authority/Guru)
      // hhtp://www.tondering.dk/claus/calendar.html
      // a = (14-month) / 12
      // y = year + 4800 - a
      // m = month + 12a - 3
      // J = day + (153m + 2) / 5 + 365y + y / 4 - y / 100 + y / 400 - 32045
      // d4 = (J + 31741 - (J mod 7)) mod 146097 mod 36524 mod 1461
      // L = d4 / 1460
      // d1 = ((d4 - L) mod 365) + L
      // WeekNumber = d1 / 7 + 1

      year = n.getFullYear();
      month = n.getMonth() + 1;
      if (startAt == 0) {
         day = n.getDate() + 1;
      }
      else {
         day = n.getDate();
      }

      a = Math.floor((14-month) / 12);
      y = year + 4800 - a;
      m = month + 12 * a - 3;
      b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
      J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
      d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
      L = Math.floor(d4 / 1460);
      d1 = ((d4 - L) % 365) + L;
      week = Math.floor(d1/7) + 1;

      return week;
   }

	function constructCalendar () {
		var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)

		var dateMessage
		var	startDate =	new	Date (yearSelected,monthSelected,1)
		var endDate

		if (monthSelected==1)
		{
			endDate	= new Date (yearSelected,monthSelected+1,1);
			endDate	= new Date (endDate	- (24*60*60*1000));
			numDaysInMonth = endDate.getDate()
		}
		else
		{
			numDaysInMonth = aNumDays[monthSelected];
		}

		datePointer	= 0
		dayPointer = startDate.getDay() - startAt

		if (dayPointer<0)
		{
			dayPointer = 6
		}

		sHTML =	"<table	 border=0 style='font-family:verdana;font-size:11px;'><tr>"


		for	(i=0; i<7; i++)	{
			sHTML += "<td width='20' align='right'><B>"+ dayName[i]+"</B></td>"
		}
		sHTML +="</tr><tr>"


		for	( var i=1; i<=dayPointer;i++ )
		{
			sHTML += "<td>&nbsp;</td>"
		}

		for	( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
		{
			dayPointer++;
			sHTML += "<td align=right>"
			sStyle=styleAnchor
			if ((datePointer==odateSelected) &&(monthSelected==omonthSelected)	
			&& (yearSelected==oyearSelected))
			{ sStyle+=styleLightBorder }

			sHint = ""
			for (k=0;k<HolidaysCounter;k++)
			{
				if 
				((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)
				==(monthSelected+1)))
				{
					if 
					((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)=
					=yearSelected)&&(parseInt(Holidays[k].y)!=0)))
					{
						sStyle+="background-color:#FFDDDD;"
						sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k
						].desc
					}
				}
			}

			var regexp= /\"/g
			sHint=sHint.replace(regexp,"&quot;")
			dateMessage 
			="onmousemove='window.status=\""+selectDateMessage.replace("[date]",const
			ructDate(datePointer,monthSelected,yearSelected))+"\"' 
			onmouseout='window.status=\"\"' "
			if 
			((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNo
			w))
			{ sHTML += "<b><a "+dateMessage+" title=\"" + sHint + 
			"\"style='"+sStyle+"' 
			href='javascript:dateSelected="+datePointer+";closeCalendar();'><font 
			color=#ff0000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"}
			else if	(dayPointer % 7 == (startAt * -1)+1)
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\"style='"+sStyle+"' 
			href='javascript:dateSelected="+datePointer + 
			";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + 
			"</font>&nbsp;</a>" }
			else
			{ sHTML += "<a "+dateMessage+" title=\"" + sHint + "\"style='"+sStyle+"' 
			href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" 
			+ datePointer + "&nbsp;</a>" }
			sHTML += ""
			if ((dayPointer+startAt) % 7 == startAt) {
				sHTML += "</tr><tr>"

			}
		}

		document.getElementById("content").innerHTML   = sHTML
		document.getElementById("spanMonth").innerHTML = "&nbsp;" +	
		monthName[monthSelected] + "&nbsp;<IMG id='changeMonth' SRC='"+imgDir+"drop1.gif' 
		WIDTH='12'HEIGHT='10' BORDER=0>"
		document.getElementById("spanYear").innerHTML =	"&nbsp;" + yearSelected	+ 
		"&nbsp;<IMG id='changeYear' SRC='"+imgDir+"drop1.gif' WIDTH='12' HEIGHT='10' 
		BORDER=0>"
	}

	function thistime(ctl,	ctl2, format) {
		var	leftpos=0
		var	toppos=0

		if (bPageLoaded)
		{
			if ( crossobj.visibility ==	"hidden" ) {
				ctlToPlaceValue	= ctl2
				dateFormat=format;

				formatChar = " "
				aFormat	= dateFormat.split(formatChar)
				if (aFormat.length<3)
				{
					formatChar = "/"
					aFormat	= dateFormat.split(formatChar)
					if (aFormat.length<3)
					{
						formatChar = "."
						aFormat	= dateFormat.split(formatChar)
						if (aFormat.length<3)
						{
							formatChar = "-"
							aFormat	= dateFormat.split(formatChar)
							if (aFormat.length<3)
							{
								// invalid date	format
								formatChar=""
							}
						}
					}
				}

				tokensChanged =	0
				if ( formatChar	!= "" )
				{
					// use user's date
					aData =	ctl2.value.split(formatChar)

					for	(i=0;i<3;i++)
					{
						if ((aFormat[i]=="d") || (aFormat[i]=="dd"))
						{
							dateSelected = parseInt(aData[i],10)
							tokensChanged ++
						}
						else if	((aFormat[i]=="m") || (aFormat[i]=="mm"))
						{
							monthSelected =	parseInt(aData[i],10) - 1
							tokensChanged ++
						}
						else if	(aFormat[i]=="yyyy")
						{
							yearSelected = parseInt(aData[i],10)
							tokensChanged ++
						}
						else if	(aFormat[i]=="mmm")
						{
							for	(j=0; j<12;	j++)
							{
								if (aData[i]==monthName[j])
								{
									monthSelected=j
									tokensChanged ++
								}
							}
						}
						else if	(aFormat[i]=="mmmm")
						{
							for	(j=0; j<12;	j++)
							{
								if (aData[i]==monthName2[j])
								{
									monthSelected=j
									tokensChanged ++
								}
							}
						}
					}
				}

				if 
				((tokensChanged!=3)||isNaN(dateSelected)||isNaN(monthSelected)||i
				sNaN(yearSelected))
				{
					dateSelected = dateNow
					monthSelected =	monthNow
					yearSelected = yearNow
				}

				odateSelected=dateSelected
				omonthSelected=monthSelected
				oyearSelected=yearSelected

				aTag = ctl
				do {
					aTag = aTag.offsetParent;
					leftpos	+= aTag.offsetLeft;
					toppos += aTag.offsetTop;
				} while(aTag.tagName!="BODY");

				crossobj.left =	fixedX==-1 ? ctl.offsetLeft	+ leftpos :fixedX
				crossobj.top = fixedY==-1 ?	ctl.offsetTop +	toppos + 
				ctl.offsetHeight +	2 :	fixedY
				constructCalendar (1, monthSelected, yearSelected);
				crossobj.visibility=(dom||ie)? "visible" : "show"

				hideElement( 'SELECT', document.getElementById("calendar"));
				hideElement( 'APPLET', document.getElementById("calendar"));

				bShow = true;
			}
			else
			{
				hideCalendar()
				if (ctlNow!=ctl) {thistime(ctl, ctl2, format)}
			}
			ctlNow = ctl
		}
	}




	document.onkeypress = function hidecal1 () {
		if (event.keyCode==27)
		{
			hideCalendar()
		}
	}
	document.onclick = function hidecal2 () {
		if (!bShow)
		{
			hideCalendar()
		}
		bShow = false
	}

	if(ie)
	{
		init()
	}
	else
	{
		window.onload=init
	}
</script>	
	// 应用

	<tr>
		<td>成立日期<span class="style3">*</span>:</td>
		<td><input type="text" name="establishData" onclick="thistime(this, 
		loginfrm.establishData, 'yyyy-mm-dd')"/></td>
		<td><hr color="#CCCCFF"></td>
分享到:
评论

相关推荐

    js时间控件日期控件支持多语言

    JavaScript时间控件和日期控件是网页开发中常用的交互元素,尤其在表单提交、事件调度等场景下,用户友好的日期和时间选择器能够极大提升用户体验。本篇将详细介绍"js时间控件"和"js日期控件"的相关知识点,并结合...

    超简洁的JS日期控件

    该日期控件的核心是名为`setday.js`的JavaScript文件。这个文件包含了实现日期选择功能的代码逻辑。通常,JavaScript日期控件会包含一系列函数,用于创建、显示和管理日期选择器,以及处理用户选择日期后的事件。...

    兼所有浏览器的js日期控件

    "兼所有浏览器的js日期控件"是一个旨在确保在各种主流浏览器(如火狐Firefox、Internet Explorer、Google Chrome以及360浏览器)中都能正常工作的JavaScript库。这种跨浏览器兼容性是现代Web开发的关键因素,因为...

    js日期控件js日期控件js日期控件

    本文将深入探讨JS日期控件的设计与实现。 一、JavaScript日期对象 在JavaScript中,内置的`Date`对象用于处理日期和时间。你可以通过创建新的Date实例来获取当前日期或设置特定日期: ```javascript var now = ...

    js日期控件 支持IE、firefox、chrome

    而"calendar.js"应该是实际的JavaScript代码文件,包含了日期控件的核心逻辑和功能实现。开发者可以通过查看和引用这个文件,将日期控件集成到自己的项目中。 在实际应用中,使用此类日期控件可能涉及以下几个步骤...

    js时间控件(多种)

    1. 原生JavaScript时间控件:虽然原生JS不提供内置的时间选择器,但开发者可以通过组合HTML5的`&lt;input type="date"&gt;`和`&lt;input type="time"&gt;`元素,以及JavaScript事件处理来创建基本的时间选择功能。不过这种方法...

    js日期控件及使用方法

    这篇内容将深入讲解JavaScript日期控件及其使用方法,结合提供的`jsDate.html`和`date.js`文件,我们将学习如何创建和自定义这样的控件。 1. **内置JavaScript日期对象** JavaScript提供了一个内置的`Date`对象,...

    javascript 日期控件带时间

    JavaScript 日期控件是网页开发中常用的一种交互元素,它允许用户方便地选择日期和时间。在JavaScript中,处理日期和时间主要依赖于内置的`Date`对象。本篇文章将详细探讨如何创建一个带有时间选择功能的JavaScript...

    超级简单好用的JS日期控件

    标题中提到的“超级简单好用的JS日期控件”很可能是一个基于JavaScript实现的日期选择插件,它提供了方便快捷的日期选择功能,避免了.NET自带控件的复杂性。这种控件通常会在用户聚焦到输入框时,通过JS事件监听机制...

    Js日期控件 多种浏览器下均可使用

    JavaScript日期控件是一种在网页上实现用户交互式日期选择功能的工具,尤其在网页表单中,用于输入日期数据时非常实用。标题提到的“Js日期控件 多种浏览器下均可使用”,意味着这个控件是跨浏览器兼容的,能够在...

    js日期控件,可以选择时间,很好用

    日期控件是JavaScript中的一个组件,通过创建用户友好的界面来处理日期和时间的输入。常见的日期控件有HTML5的`&lt;input type="date"&gt;`和`&lt;input type="time"&gt;`,但这些原生控件在某些旧浏览器中可能不被支持。因此,...

    很好用得js日期控件

    在网页开发中,尤其在处理表单提交或者时间相关的交互时,js日期控件显得尤为重要。本压缩包文件提供了几个经过测试的好用的js日期控件示例,包括"demo2"、"demo3"、"demo1"和"demo4",这些都是开发者们在实际项目中...

    js日期控件 js日期控件

    JavaScript日期控件是Web开发中常见的一种元素,用于在网页上提供用户友好的日期选择功能。在不依赖外部库如jQuery UI或Bootstrap Datepicker的情况下,开发者可以使用原生JavaScript来创建自定义的日期选择器。以下...

    js日期控件支持多种浏览器

    "js日期控件"通常包含以下特性: 1. **多浏览器兼容性**:由于不同的浏览器对JavaScript的实现可能存在差异,日期控件会针对这些差异进行优化,确保在各种浏览器上表现一致。 2. **易用性**:提供简单的API,使得...

    非常好用的精确到时分的js时间控件

    首先,我们要理解JavaScript时间控件的基本原理。在JavaScript中,我们可以使用内置的`Date`对象来处理日期和时间。这个对象提供了多种方法来获取和设置日期和时间,如`getFullYear()`、`getMonth()`、`getDate()`、...

    JS日期控件集合(内含附图,共有6款)

    JS日期控件通过JavaScript代码实现与用户的交互,可以验证用户输入的日期格式,提供日期范围限制等功能。 2. **自定义日期格式** 不同的日期控件可能支持不同的日期格式,如"YYYY-MM-DD"、"MM/DD/YYYY"或"DD.MM....

    比较经典的JS时间控件

    总的来说,My97 DatePicker 是一个强大且灵活的JavaScript时间控件,它的易用性和丰富的特性使其成为许多开发者的选择。无论是对于新手还是经验丰富的前端开发者,这个经典的时间控件都是值得学习和使用的工具。通过...

    非常好用的js日期控件

    总结来说,这个“非常好用的js日期控件”是一个包含CSS样式和JavaScript实现的日期选择组件,提供了良好的用户体验和高度的可定制性。开发者可以将它轻松集成到自己的项目中,通过调整CSS来匹配网页设计,通过修改JS...

Global site tag (gtag.js) - Google Analytics