Problem mit Kalender

formmad

Mitglied
Hallo zusammen...

ich habe ein kleines Problem mit dem JavaScript Kalender.

PHP:
//Formularname im Elternfenster
sFormName='formularname';

//Input-Name im Elternfenster
sInputName='inputname';


//Falls das Outfit nicht gefaellt, ist hier die Chance, dies abzustellen.
//Tabelle
	cTable	=' style="background-color:#515151;font:12px Verdana,Geneva,Arial,Sans-Serif;"';
//Tabellenkopf
	cHeader	=' style="background-color:#626262;color:gold;" ';
//Woche...
	cWeek	=' style="color:#ffffff;background-color:#818181;"';
//Tag Normal
	cDay	=' align="right"style="color:#000000;background-color:#dfdfdf;"';
//Aktueller Tag
	cDayThis	=' align="right"style="color:firebrick;font-weight:bold;background-color:#ffffff;border:1px solid firebrick;"';
//Kein Tag
	cDayNo	=' style="color:#000000;background-color:#a1a1a1;"';
//Tag mit Termineintrag(betrifft nur Text, Zellenformat wird vererbt)
	cDayClick=' style="text-decoration:underline;cursor:pointer;"';
	if(document.all){cDayClick=' style="text-decoration:underline;cursor:hand;"';}
//Wochenende
	cDayWE	=' align="right"style="color:#000000;background-color:#c1c1c1;"';
//Termin
	cInfo	=' style="color:#000000;font-size:10px;background-color:#f0f0f0;"';

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */  
iX=false;
if(document.getElementsByTagName&&document.getElementsByTagName('script')[0].innerHTML!='undefined'){iX=true;}
mS=new Array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');

wdS=new Array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
wD=new Array(0,1,2,3,4,5,-1);
now=new Date();
thisDay=new Date();
var toMonth=thisDay.getMonth();
var toDay=thisDay.getDate();


function makeCalendar(m,y,sD)
{
yyN=y;NN=true;mmN=m+1;
yyP=y;PP=false;mmP=m-1;

if(m==11){yyN=y+1;mmN=0;}
if(m==0&&y>0){yyP=y-1;mmP=11;}
if(y>0||m>0){PP=true;}
now.setDate(1);
now.setMonth(m);
now.setFullYear(y);
mLength=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if(y % 4==0){mLength[1]=29;if(y % 100==0){mLength[1]=28;}if(y % 400==0){mLength[1]=29;}}
mStart=now.getDay();
prev_='&nbsp;';if(PP&&iX){prev_='<b style="cursor:w-resize;"title="'+mS[m-1]+'"onclick="switchCalendar('+mmP+','+yyP+',false);">&lt;&lt;</b>';}
next_='&nbsp;';if(NN&&iX){next_='<b style="cursor:e-resize;"title="'+mS[m+1]+'"onclick="switchCalendar('+mmN+','+yyN+',false);">&gt;&gt;</b>';}
htm='<table'+cTable+'border="0"cellspacing="1"cellpadding="1"width="220"><tr><td colspan="8"><table width="100%"cellpadding="0"cellspacing="0"border="0"><tr><td align="left"'+cHeader+'><b'+cHeader+'>'+prev_+'</b></td><td align="center"'+cHeader+'><b'+cHeader+'>'+mS[m]+'&nbsp;'+y+'</b></td><td align="right"'+cHeader+'><b'+cHeader+'>'+next_+'</b></td></tr></table></td></tr>';
initR=false;
stopR=false;
mDay='&nbsp;';
for(r=0;r<6;++r)
	{
	if(stopR){break;}
	htm+='<tr><td nowrap="nowrap"'+cWeek+'>'+eval(r+1)+'.Woche</td>';
	for(xD=0;xD<7;++xD)
		{
		if(!initR&&(wD[xD]==mStart-1))
			{
			mDay=0;initR=true;
			}
			if(!stopR&&initR)
				{
				mDay++;
				if(mDay>mLength[m]){mDay='&nbsp;';}
				if(mDay==mLength[m]){stopR=true;}
				}
			else{mDay='&nbsp;';}
		mDayX=mDay;
		sClick=' onclick="klick('+mDay+','+eval(m+1)+','+y+');" ';
		dayCell='<td'+sClick+cDay+'>'+mDayX+'</td>';
		if(xD>4)
			{dayCell='<td'+sClick+cDayWE+'>'+mDayX+'</td>';}
		if(mDay=='&nbsp;')
			{dayCell='<td'+cDayNo+'>'+mDayX+'</td>';}
		if(mDay==thisDay.getDate()&&m==thisDay.getMonth()&&y==thisDay.getFullYear())
			{dayCell='<td'+sClick+cDayThis+'>'+mDayX+'</td>';}

		htm+=dayCell;
		}
	htm+='</tr>\n';
	}
htm+='</table>';
if(document.layers)
{document.calendar.document.write(htm);return '';}
return htm;
}
function switchCalendar(m,y)
{
document.getElementById('calendar').innerHTML=makeCalendar(m,y,false);
}


function klick(d,m,y)
{
opener.document.forms[sFormName].elements[sInputName].value=d+'.'+m+'.'+y;
}

HTML:
<html>
<head>
<title>Kalender</title>
<style type="text/css">
<!--
-->
</style>
<script type="text/javascript"src="calendar.js"></script>
</head>
<body>
<div id="calendar"style="position:absolute;top:0;left:0;display:inline;">
<script type="text/javascript">
document.write(makeCalendar(now.getMonth(),now.getFullYear(),true));
</script>
</div>
</body>
</html>

Wenn auf ein Datum geklickt wird, wird es in eine entsprechende Formular Feld übertragen. Das klappt auch bei mir. Ich kann den Kalender super etablieren. Nur er gibt mir ein falsches Datumsformat aus z.B. "4.2.2006" ich möchte aber gerne "04.02.2006" haben.

Weiß jemand Rat?

Danke
 
Warum ist das Datumsformat falsch:confused:
Weil es nicht deinen Wünschen entspricht?

Setze vor d und m eine 0, wenn sie kleiner als 10 sind.
 
Hi.

@Sven Mintel

Richtig, ich möchte das das Datum anders ausgegeben wird, wie folgendes Beispiel "06.02.2006".

Du hast geschrieben:
Setze vor d und m eine 0, wenn sie kleiner als 10 sind.

Wie meinst du das? Und wo? Hier mein Beispiel. Meinst du so in etas?
PHP:
if (d < 10) {
d = "0"+d;
}

--------------------------------------------------------------------- nachtrag

Ich habe das Problem selber gefunden. Hier mein Code:
PHP:
//Formularname im Elternfenster
sFormName = 'formularname';

//Input-Name im Elternfenster
sInputName = 'inputname';


//Falls das Outfit nicht gefaellt, ist hier die Chance, dies abzustellen.
//Tabelle
	cTable	=' style="background-color:#515151;font:12px Verdana,Geneva,Arial,Sans-Serif;"';
//Tabellenkopf
	cHeader	=' style="background-color:#626262;color:gold;" ';
//Woche...
	cWeek	=' style="color:#ffffff;background-color:#818181;"';
//Tag Normal
	cDay	=' align="right"style="color:#000000;background-color:#dfdfdf;"';
//Aktueller Tag
	cDayThis	=' align="right"style="color:firebrick;font-weight:bold;background-color:#ffffff;border:1px solid firebrick;"';
//Kein Tag
	cDayNo	=' style="color:#000000;background-color:#a1a1a1;"';
//Tag mit Termineintrag(betrifft nur Text, Zellenformat wird vererbt)
	cDayClick=' style="text-decoration:underline;cursor:pointer;"';
	if(document.all){cDayClick=' style="text-decoration:underline;cursor:hand;"';}
//Wochenende
	cDayWE	=' align="right"style="color:#000000;background-color:#c1c1c1;"';
//Termin
	cInfo	=' style="color:#000000;font-size:10px;background-color:#f0f0f0;"';

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */  
iX = false;
if (document.getElementsByTagName && document.getElementsByTagName('script')[0].innerHTML != 'undefined') {
	iX=true;
}
mS = new Array('Januar','Februar','M&auml;rz','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
wdS = new Array('Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag');
wD = new Array(0,1,2,3,4,5,-1);
now = new Date();
thisDay = new Date();
var toMonth = thisDay.getMonth();
var toDay = thisDay.getDate();

function makeCalendar(m,y,sD) {
	yyN = y;
	NN = true;
	mmN = m+1;
	yyP = y;
	PP = false;
	mmP = m-1;
	if (m == 11) { 
		yyN = y+1;
		mmN = 0;
	}
	if (m == 0 && y > 0) {
		yyP = y-1;
		mmP = 11;
	}
	if (y > 0 || m > 0) {
		PP = true;
	}
	now.setDate(1);
	now.setMonth(m);
	now.setFullYear(y);
	mLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	if(y % 4 == 0) {
		mLength[1] = 29;
		if (y % 100 == 0) {
			mLength[1] = 28;
		}
		if (y % 400 == 0) {
			mLength[1]=29;
		}
	}
	mStart=now.getDay();
	prev_='&nbsp;';
	if (PP && iX) {
		prev_='<b style="cursor:w-resize;" title="'+mS[m-1]+'" onclick="switchCalendar('+mmP+','+yyP+',false);">&lt;&lt;</b>';
	}
	next_='&nbsp;';
	if (NN && iX) {
		next_='<b style="cursor:e-resize;" title="'+mS[m+1]+'" onclick="switchCalendar('+mmN+','+yyN+',false);">&gt;&gt;</b>';
	}
	htm='<table'+cTable+'border="0"cellspacing="1"cellpadding="1"width="220"><tr><td colspan="8"><table width="100%"cellpadding="0"cellspacing="0"border="0"><tr><td align="left"'+cHeader+'><b'+cHeader+'>'+prev_+'</b></td><td align="center"'+cHeader+'><b'+cHeader+'>'+mS[m]+'&nbsp;'+y+'</b></td><td align="right"'+cHeader+'><b'+cHeader+'>'+next_+'</b></td></tr></table></td></tr>';
	initR = false;
	stopR = false;
	mDay = '&nbsp;';
	for (r=0;r<6;++r) {
		if (stopR) {
			break;
		}
		htm+='<tr><td nowrap="nowrap"'+cWeek+'>'+eval(r+1)+'.Woche</td>';
		for (xD = 0; xD < 7; ++xD) {
			if(!initR && (wD[xD] == mStart-1)) {
				mDay = 0;
				initR = true;
			}
			if (!stopR && initR) {
				mDay++;
				if (mDay > mLength[m]) {
					mDay='&nbsp;';
				}
				if(mDay==mLength[m]) {
					stopR = true;
				}
			} else {
				mDay = '&nbsp;';
			}
			mDayX = mDay;
			if (mDay < 10) {
				mDay = "0"+mDay;
			}
			if (mDayX < 10) {
				mDayX = "0"+mDayX;
			}
			sClick=' onclick="klick('+mDay+','+eval(m+1)+','+y+');" ';
			dayCell='<td'+sClick+cDay+'>'+mDayX+'</td>';
			if (xD>4) {
				dayCell='<td'+sClick+cDayWE+'>'+mDayX+'</td>';
			}
			if (mDay=='&nbsp;') {
				dayCell='<td'+cDayNo+'>'+mDayX+'</td>';
			}
			if (mDay == thisDay.getDate() && m == thisDay.getMonth() && y == thisDay.getFullYear()) {
				dayCell='<td'+sClick+cDayThis+'>'+mDayX+'</td>';
			}
			htm+=dayCell;
		}
	htm+='</tr>\n';
	}
	htm+='</table>';
	if(document.layers) {
		document.calendar.document.write(htm);return '';
	}
	return htm;
}
function switchCalendar(m,y) {
	document.getElementById('calendar').innerHTML=makeCalendar(m,y,false);
}
function klick(d,m,y) {
	if (d < 10) {
		d = "0"+d;
	}
	if (m < 10) {
		m = "0"+m;
	}
	document.sFormName.sInputName.value = d+'.'+m+'.'+y;
	document.sFormName.sInputName.focus();
}

Gruß
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück