Tage zählen
Helli
- javascript
0 Vinzenz Mai0 Helli
0 Maxx0 rob0 King^Lully0 rob
Hallo
Ich möchte mittels Java Script ein Script erstellen, das den Tag im Jahr ermittelt und darauf eine Datei "Dateiname"+Tag+.HTML öffnet
Habe insgesamt 365 Dateien.
Habe bisher versucht die Millisekunden in Tage umzuwandeln und dann zu subtrahieren, aber die Versuche schlugen immer fehl.
Hallo
Ich möchte mittels Java Script ein Script erstellen, das den Tag im Jahr ermittelt und darauf eine Datei "Dateiname"+Tag+.HTML öffnet
Habe insgesamt 365 Dateien.
2008 ist ein Schaltjahr. Nächstes Jahr hast Du ein Problem :-)
Habe bisher versucht die Millisekunden in Tage umzuwandeln und dann zu subtrahieren, aber die Versuche schlugen immer fehl.
Wie bitte sieht soll bei Dir "Tag" aussehen?
[ ] eine Zahl zwischen 1 und 365?
[ ] ein gebräuchliches Datumsformat, z.B. 01-24 oder 24.01
[ ] ganz anders, ich beschreibe es _______________________
Wie sehen Deine bisherigen Versuche aus, aus den Informationen des
Date-Objektes die Zeichenfolge für Deinen Tag zu ermitteln?
Freundliche Grüße
Vinzenz
Wie bitte sieht soll bei Dir "Tag" aussehen?
[X] eine Zahl zwischen 1 und 365?
[ ] ein gebräuchliches Datumsformat, z.B. 01-24 oder 24.01
[ ] ganz anders, ich beschreibe es _______________________
Hallo,
Wie bitte sieht soll bei Dir "Tag" aussehen?
[X] eine Zahl zwischen 1 und 365?
[ ] ein gebräuchliches Datumsformat, z.B. 01-24 oder 24.01
[ ] ganz anders, ich beschreibe es _______________________
Deine Versuche, auf das gewünschte Ergebnis zu kommen, hätten mich schon interessiert.
Mit den Methoden des Date-Objektes kannst Du den Tag ermitteln:
1. Mit getMonth() ermittelst Du den aktuellen Monat
2. Mit getDate() den Tag des Monats im Jahr
3. Über getYear() kannst Du ermitteln, ob es sich um ein Schaltjahr handelt.
(Bis 2100 brauchst Du Dir über Sonderregeln keine Gedanken zu machen,
Du darfst diese aber gern mit einbauen :-))
Summiere die Anzahl der Tage der Monate im Jahr, die bereits vorbei sind.
Berücksichtige, falls erforderlich, einen Schalttag.
Addiere dazu die Anzahl der Tage im aktuellen Monat.
Freundliche Grüße
Vinzenz
Mit den Methoden des Date-Objektes kannst Du den Tag ermitteln:
- Mit getMonth() ermittelst Du den aktuellen Monat
- Mit getDate() den Tag des Monats im Jahr
- Über getYear() kannst Du ermitteln, ob es sich um ein Schaltjahr handelt.
(Bis 2100 brauchst Du Dir über Sonderregeln keine Gedanken zu machen,
Du darfst diese aber gern mit einbauen :-))Summiere die Anzahl der Tage der Monate im Jahr, die bereits vorbei sind.
Berücksichtige, falls erforderlich, einen Schalttag.
Addiere dazu die Anzahl der Tage im aktuellen Monat.
Eine wesentlich trockenere Lösung ist mit parse() möglich.
Hallo Helli,
Habe bisher versucht die Millisekunden in Tage umzuwandeln und dann zu subtrahieren
das scheint schon der richtige Weg zu sein.
Wie hast du es gemacht?
Ein Datumsobjekt mit dem 1.1. des aktuellen Jahres, und eines von Heute. Voneinander subtrahieren ergibt die Millisekunden seit Jahresbeginn, durch 1000 / 60 / 60 / 24 das Julianische Datum.
Und wo klappt es nicht?
Grüße,
Jochen
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
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.
...
Alles richtig, aber es ist doch oft so, dass:
Und dagegen spricht ja auch nichts.
Hi!
Und dagegen spricht ja auch nichts.
Nein. Natürlich nicht.
Aber trotzdem halte ich es für sinnvoll, auf die Nachteile dieser Technik hinzuweisen.
Eine serverseitige Lösung wäre hier sicherlich der bessere Weg.
Was jetzt draus gemacht wird, bleibt dem Fragesteller überlassen.
Neben dem Hinweis, wie man das mit PHP bewerkstelligen kann, habe ich ihm ja auch sein Javascript dafür geschrieben.
Schöner Gruß,
rob