JavaScript und das Jahr 2000

Manche Browser liefern das Jahr 4stellig, manche 2stellig, manche ab 1900 (=3stellig ab 2000, z. B. 101 für 2001)

Testen mit MSIE, NS4, NS6, Opera:

Ergebnis:

"2001"

Datum des Dokumentes Aktuelles Datum bzw. Jahr
  document.lastModified (new Date()).getYear(), oder:
var jetzt=new Date()
jetzt.getYear()
MSIE 2001 2001
NS4 01 101
NS6 2001 101
Opera 5.11 2001 101

Fazit: Jahr abfangen und neu berechnen. Bei document.lastModiefied nicht so zwingend nötig, aber beim aktuellen Jahr.

Test der Funktionen j2 und j4:

JavaScript und der Monat:

JavaScript rechnet den Monat von 0 bis 11

function Monat(m){
	var t=new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember")
	return t[m]
}
//oder kürzer:
function Monat(m){
	return new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember")[m]
}
document.write(  Monat( (new Date).getMonth() )  )

Ergebnis:

Auflistung einiger Datumsfunktionen:

function Jahr(j){
	//MSIE: 2001, NS: 101 (akt. Dat.), 01 (Datei)
	return j>999?j:j<70?j+2000:j+1900
}
function Monat(m){
	return new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember")[m]
}
function Tag(t){
	return new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag")[t]
}
function Ta(t){
	return new Array("So","Mo","Di","Mi","Do","Fr","Sa")[t]
}
// t = Trennstring für Wochentag. Parameter kann auch ganz weggelassen werden,
// dann wird auch kein Wochentag ausgegeben.
function Datum(d,t){
	return (t?Ta( d.getDay() )+t:"")+d.getDate()+"."+( d.getMonth()+1 )+"."+Jahr( d.getYear() )
}
function Datumlang(d,t){
	return (t?Tag( d.getDay() )+t:"")+d.getDate()+". "+Monat(d.getMonth())+" "+Jahr(d.getYear())
}
function SchreibeDokumentDatum(){
	document.write("\n<p>Letztes Update: ")
	document.write(Datumlang(new Date(document.lastModified),", "))
	document.writeln(".</p>")
}
function SchreibeAktuellesDatum(){
	document.write(Datum(new Date," "))
}
SchreibeDokumentDatum()
SchreibeAktuellesDatum()

Ergebnis:

Lokalzeit

Es gibt auch eine viel einfachere Funktion, um Datum und Zeit im lokalen Format auszugeben: toLocaleString(). Die funktioniert aber nur mit dem MSIE zufriedenstellend. Beispiele:

function SchreibeDokumentDatum(){
	document.writeln("\n<p>Letztes Update: "+(new Date(document.lastModified)).toLocaleString()+".</p>")
}
function SchreibeAktuellesDatum(){
	document.write( (new Date).toLocaleString() )
}
SchreibeDokumentDatum()
SchreibeAktuellesDatum()

Ergebnis mit Ihrem Browser:

Ergebnis-Aufstellung:

Browser Anzeigeformat Fehler
MSIE5.5 Dienstag, 4. Dezember 2001 20:39:22 + Korrekt
NS4.08 Wednesday, December 04, 2001 20:44:02 (Aktuelle Zeit)
Wednesday, December 04, 1901 20:39:22 (document.lastModified)
- englische Sprache und Format
- Wochentag 1 zu hoch
- Jahr falsch bei document.lastModified
NS4.75 Tuesday, December 04, 2001 20:39:22 - englische Sprache und Format
+ sonst korrekt (auch document.lastModiefied)
NS6.01 Tuesday, December 04, 2001 20:39:22 - englische Sprache und Format
+ sonst korrekt (auch document.lastModiefied)
Opera 5.11 04.12.01 21:39:22 - Wochentag fehlt
- Monat nur als Zahl, nicht als Text
+ sonst korrekt (auch document.lastModiefied)

Fazit: lieber eigene Funktionen nutzen, siehe oben.