rob: Tage zählen

Beitrag lesen

Hi!

Ich möchte mittels Java Script ein Script erstellen, das den Tag im Jahr ermittelt und darauf eine Datei "Dateiname"+Tag+.HTML öffnet

Warum mittels JavaScript?
Es wird ein Problem mit Suchmaschinen geben, weil diese keinen Javascript-Code ausführen und die entsprechende Seite dann nicht indizieren werden.
Das ist in deinem Fall vielleicht nicht weiter problematisch, oder?

Problematisch wird es sicherlich aber, daß deine Seite nicht mehr ohne Javascript funktioniert.
Viele User deaktivieren JS im Browser, weil sie von Werbemist und anderen nervigen Dingen verschont bleiben wollen.
Andere User können gar kein JS nutzen, weil dieses vielleicht irgendwie gefiltert wird oder weil sie mit einem Client unterwegs sind, der gar kein JS unterstützt.

Wäre es nicht sinnvoller, wenn du dein Vorhaben serverseitig umsetzt?
Wenn du z.B. PHP einsetzen würdest, dann könntest du dir mit Hilfe der Funktion strftime("%j"); den Tag des Jahres als Zahl (von 001 bis 366) ausgeben lassen.
Mit der Funktion getdate() könntest du dir ein assoziatives Array zurückgeben lassen, dessen Schlüssel "yday" ebenfalls den Tag des Jahres als Zahl enthält.

In jedem Fall hättest du dann eine Lösung, die a) auch ohne JS funktioniert und die b) viel einfacher umzusetzen wäre.

Habe insgesamt 365 Dateien.

Was ist in einem Schaltjahr? Fehlt dann nicht ein Tag?

Habe bisher versucht die Millisekunden in Tage umzuwandeln und dann zu subtrahieren, aber die Versuche schlugen immer fehl.

hmm...
Naja, vielleicht nicht unbedingt der falsche Ansatz...
Ich würde es aber anders machen...
Aber in jedem Fall wäre es sinnvoll, wenn du mal deinen Code posten würdest.
Dann könnte man deinen Fehler sicherlich recht schnell erkennen.

Aber wie auch immer...
So würde ich die Sache angehen:

  
<script type="text/javascript">  
  
function TagDesJahres()  
{  
 var datum;  
 var tag;  
 var monat;  
 var jahr;  
 var tage = -1;  
 datum = new Date();  
 tag = datum.getDate();  
 jahr = datum.getFullYear();  
 monat = datum.getMonth() + 1;  
  
 for ( zaehler=1; zaehler<monat; zaehler++ )  
 {  
  tage += (new Date( jahr, zaehler, 0 )).getDate();  
 }  
 tage += tag;  
  
 return tage;  
}  
  
// window.alert( TagDesJahres() );  
window.location.href = "dateiname" + TagDesJahres() + ".html";  
</script>  

Schöner Gruß,
rob