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 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:
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:
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.