Datum zweistellig

strubel

strubel

Aktives Mitglied
Thread Starter
Dabei seit
07.07.2006
Beiträge
101
Reaktionspunkte
0
Hallo Leute,

habe hier ein nettes Script welches nen Kalender ausspuckt. Nun will meine Chefin aber, dass das Datum immer also Tage und Monate zweistellig ausgegeben wird. Zum Beispiel so: 09.08.1899 anstatt 9.8.1899. Also erst einmal war grosses Schulter zucken angesagt. Aus PHP weiss ich aber, dass man das Datum formatieren kann aber Java??? Im Internet habe ich dann folgenden Code gefunden:

Code:
// Eine Zahl zweistellig darstellen
function Zweistellig(Zahl)
{
	var Str = String((Zahl > 0) ? Zahl : 0); // Zahl in String verwandeln
	if (Str.length == 1) { Str = '0' + Str; } // falls dieser nur eine Stelle hat, eine 0 davorsetzen
	return Str; // Ergebnis zurueckgeben
}

Aber ich weiss nicht wie ich den bei mir einbauen kann, soweit gehen dann meine Fähigkeiten bei weitem nicht. Habe es zwar Gestern den ganzen Tag probiert aber keine positiven Resultate erzielt. Hier mal der Code:

Code:
function show_calendar(str_target, str_datetime) {
	var arr_months = ["Januar", "Februar", "März", "April", "Mai", "Juni",
		"Juli", "August", "September", "Oktober", "November", "Dezember"];
	var week_days = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
	var n_weekstart = 1; // day week starts from (normally 0 or 1)

	//var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
	var dt_datetime = (str_datetime == null || str_datetime =="" ?  new Date() : str2dt(str_datetime));
	var dt_prev_month = new Date(dt_datetime);
	dt_prev_month.setMonth(dt_datetime.getMonth()-1);
	//var dt_next_month = new Date(dt_datetime);
  var dt_next_month = new Date(dt_datetime);
	dt_next_month.setMonth(dt_datetime.getMonth()+2);
	var dt_firstday = new Date(dt_datetime);
	dt_firstday.setDate(1);
	dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7);
	var dt_lastday = new Date(dt_next_month);
	dt_lastday.setDate(0);
	
	// html generation (feel free to tune it for your particular application)
	// print calendar header
	var str_buffer = new String (
		"<html>\n"+
		"<head>\n"+
		"	<title>Calendar</title>\n"+
		"</head>\n"+
		"<body bgcolor=\"White\">\n"+
		"<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+
		"<tr><td bgcolor=\"#CCCCCC\">\n"+
		"<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+
		"<tr>\n	<td bgcolor=\"#FFB612\"><a href=\"javascript:window.opener.show_calendar('"+
		str_target+"', '"+ dt2dtstr2(dt_prev_month)+"')\">"+
		"<img src=\"prev.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"previous month\"></a></td>\n"+
		"	<td bgcolor=\"#FFB612\" colspan=\"5\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"
		+arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+
		"	<td bgcolor=\"#FFB612\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('"
		+str_target+"', '"+dt2dtstr(dt_next_month)+"')\">"+
		"<img src=\"next.gif\" width=\"16\" height=\"16\" border=\"0\""+
		" alt=\"next month\"></a></td>\n</tr>\n"
	);

	var dt_current_day = new Date(dt_firstday);
	// print weekdays titles
	str_buffer += "<tr>\n";
	for (var n=0; n<7; n++)
		str_buffer += "	<td bgcolor=\"#cccccc\">"+
		"<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+
		week_days[(n_weekstart+n)%7]+"</font></td>\n";
	// print calendar table
	str_buffer += "</tr>\n";
	while (dt_current_day.getMonth() == dt_datetime.getMonth() ||
		dt_current_day.getMonth() == dt_firstday.getMonth()) {
		// print row heder
		str_buffer += "<tr>\n";
		for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
				if (dt_current_day.getDate() == dt_datetime.getDate() &&
					dt_current_day.getMonth() == dt_datetime.getMonth())
					// print current date
					str_buffer += "	<td bgcolor=\"#FFB612\" align=\"right\">";
				else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
					// weekend days
					str_buffer += "	<td bgcolor=\"#DBEAF5\" align=\"right\">";
				else
					// print working days of current month
					str_buffer += "	<td bgcolor=\"white\" align=\"right\">";

				if (dt_current_day.getMonth() == dt_datetime.getMonth())
					// print days of current month
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr2(dt_current_day)+"'; window.close();\">"+
					"<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";
				else 
					// print days of other months
					str_buffer += "<a href=\"javascript:window.opener."+str_target+
					".value='"+dt2dtstr2(dt_current_day)+"'; window.close();\">"+
					"<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">";
				str_buffer += dt_current_day.getDate()+"</font></a></td>\n";
				dt_current_day.setDate(dt_current_day.getDate()+1);
		}
		// print row footer
		str_buffer += "</tr>\n";
	}
	// print calendar footer
	

	var vWinCal = window.open("", "Calendar", 
		"width=200,height=200,status=no,resizable=yes,top=200,left=200");
	vWinCal.opener = self;
	var calc_doc = vWinCal.document;
	calc_doc.write (str_buffer);
	calc_doc.close();
}
// datetime parsing and formatting routimes. modify them if you wish other datetime format
function str2dt (str_datetime) {
  var date = str_datetime.split(".");
	//var re_date = /^(\d+)\-(\d+)\-(\d+)$/;
	//if (!re_date.exec(str_datetime))
		//return alert("Invalid Datetime format: "+ str_datetime);
	return (new Date (date[2], ( date[1] - 1 ), date[0]));
}
function dt2dtstr (dt_datetime) {
	return (new String (
			dt_datetime.getDate() + "." +(dt_datetime.getMonth())+ "."+ dt_datetime.getFullYear()+""));
}
function dt2dtstr2 (dt_datetime) {
	return (new String (
			dt_datetime.getDate() + "." +(dt_datetime.getMonth()+1)+ "."+ dt_datetime.getFullYear()+""));
}
function dt2tmstr (dt_datetime) {
	return (new String (
			dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds()));
}

Gruss Strubel
 
Du musst die obige "function Zweistellig..." nur in das Untere komplett einkopieren.
Und dann jedesmal wo z.B. der Tag ausgegeben wird, setzt Du Zweistellig(Tag) ein.

Das ist übrigens alles Javascript, nicht Java.
 
Habs nur überflogen aber ich denke Du musst nur die zwei Funktionen vor der letzten anpassen.
Code:
function dt2dtstr (dt_datetime) {
   var d=dt_datetime.getDate();
   var m=dt_datetime.getMonth();
   return (d<10?'0'+d:d)+ "." +(m<10?'0'+m:m)+ "."+dt_datetime.getFullYear();

}

function dt2dtstr2 (dt_datetime) {

   var d=dt_datetime.getDate();
   var m=dt_datetime.getMonth()+1;
   return (d<10?'0'+d:d)+ "." +(m<10?'0'+m:m)+ "."+dt_datetime.getFullYear();
}
 
Habs nur überflogen aber ich denke Du musst nur die zwei Funktionen vor der letzten anpassen.
Code:
function dt2dtstr (dt_datetime) {
   var d=dt_datetime.getDate();
   var m=dt_datetime.getMonth();
   return (d<10?'0'+d:d)+ "." +(m<10?'0'+m:m)+ "."+dt_datetime.getFullYear();

}

function dt2dtstr2 (dt_datetime) {

   var d=dt_datetime.getDate();
   var m=dt_datetime.getMonth()+1;
   return (d<10?'0'+d:d)+ "." +(m<10?'0'+m:m)+ "."+dt_datetime.getFullYear();
}


Jup das wars auch schon. Super vielen Dank DMS, wie immer.
Hätte ich mal wieder nicht hinbekommen.

Ach so olivetti das es Javascript heisst weiss ich auch, war nur zu faul es aus zuschreiben.

Grüsse Strubel
 
strubel schrieb:
weiss ich auch, war nur zu faul es aus zuschreiben.

was aber bei genügend Leuten zu Verwechslungen führt und daher ausgeschrieben werden sollte! Nicht wenige glauben beides sei das Selbe!


ach @Strubel: cooles Foto von Dir :p
 
Kannst du uns bitte auch noch verraten, warum du das ausgerechnet mit JavaScript lösen willst/musst? Eine Internetseite darf nicht so aufgebaut sein, dass sie ohne JavaScript/Flash/Bilder etc. nicht funktioniert. Warum setzt du da keine server-seitige Sprache wie PHP, Perl, Python oder Ruby (on Rails) ein?
 
Ach was, da gibt's auch schon ein Gesetz? :p

Ich hätte nix dagegen, wenns so wäre :D

Spaß beiseite, ich finde nicht, dass JavaScript generell schlecht ist. Die Homepage von Apple ist ein gutes Beispiel dafür, wie man JavaScript effektiv und an den richtigen Stellen einsetzt. Besuche die Seite einmal ohne und einmal mit aktiviertem JavaScript, dann weißt du sicherlich, was ich meine (z.B. die effektvolle Navigation oben bei apple.com/mac oder das sanfte Einblenden der Textblöcke bei apple.com/iwork). Bei der Homepage von Apple wird übrigens das Framework script.aculo.us verwendet.

Edit: Falls es noch nicht deutlich wurde: Ich wollte ein Beispiel dafür zeigen, wie man JavaScript so einsetzen kann, dass die Seite auch ohne JS funktioniert.
 
Hm, aber wir wissen nicht, ob Strubels Seite vielleicht eine Interne ist.
Dann geht's uns, mit Verlaub einen K*ck an, ob JS gebraucht wird oder nicht.
Oder sie wird ohne Server nur als Datei aufgerufen...
 
Warum setzt du da keine server-seitige Sprache wie PHP, Perl, Python oder Ruby (on Rails) ein?

Was donsimon hier indirekt anklingen lässt ist, dass wenn ein Datum Client-seitig berechnet wird, auch das Client-Datum und nicht das Server-Datum genutzt wird. Sprich ist’s beim User falsch, ist es im JavaScript falsch.

Das muss ja kein Problem sein, sollte man aber wissen.
 
Wenn ich das richtig verstanden habe, wird aber gar kein Datum angezeigt, wenn JavaScript deaktiviert ist oder nicht angezeigt werden kann. Das war es, was mich gestört hat.

@olivetti: Da hast du natürlich Recht, ich habe einfach angenommen, dass es sich hier um eine öffentliche Seite im Web handelt.
 
Das ist aber sehr dogmatisch, oder? Die Menge der Leute, die kein JavaScript haben, weil sie anders surfen und das Datum auf dieser Seite sehen müssen, halte ich für sehr gering.
 
Zurück
Oben Unten