Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
jagy Herb Derpington III.
Anmeldungsdatum: 26.11.2006 Beiträge: 7275
|
(#822251) Verfasst am: 20.09.2007, 12:05 Titel: Alternative Zeitrechnung mit JavaScript |
|
|
Moin,
wie könnte man mit JavaScript eine Datumsanzeige basteln, die eine Zeitrechnung in Tagen, Monaten, Jahren ab einem bestimmten Datum anzeigt?
_________________ INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
|
|
Nach oben |
|
 |
jagy Herb Derpington III.
Anmeldungsdatum: 26.11.2006 Beiträge: 7275
|
(#822266) Verfasst am: 20.09.2007, 12:34 Titel: |
|
|
kann da mal jemand drüber schauen:
Ich habe hier http://www.html-world.de/program/js_e_4.php folgendes Skript gefunden:
Zitat: |
function berechne()
{
a = parseInt(document.form1.jahr.value);
b = parseInt((document.form1.monat.value)-1);
c = parseInt(document.form1.tag.value);
d = parseInt(document.form1.stunden.value);
e = parseInt(document.form1.minuten.value);
f = new Date(a,b,c,d,e);
g = new Date();
minuten = g.getMinutes()-f.getMinutes();
stunden = g.getHours()-f.getHours();
tage = g.getDate()-f.getDate();
monate = g.getMonth()-f.getMonth();
jahre = g.getYear()-f.getYear();
if(minuten<0){minuten = 60+minuten; stunden--;}
if(stunden<0){stunden = 24+stunden; tage--;}
if(tage<0){tage = 30+tage; monate--;}
if(monate<0> 2000){jahre = jahre-2000}
if(jahre > 1900){jahre = jahre-1900}
alert('Sie sind \n'+
'- '+jahre+' Jahre und \n'+
'- '+monate+' Monate und \n'+
'- '+tage+' Tage und \n'+
'- '+stunden+' Stunden und \n'+
'- '+minuten+' Minuten alt.');
}
--------------------------
form name="form1" onsubmit="berechne()">
Tag.Monat.Jahr:
<input>.
<input>.
<input><br>
Stunden.Minuten:
<input>:
<input><br>
<input>
</form>
|
Das ist ein Skript, das berechnet, wie alt man in Tagen, Monaten und Jahren ist. Jetzt hab ich gedacht, wenn man das etwas umbaut und als "Geburtstag" sozusagen den Tag des Beginns der Zeitrechnung setzt, müsste man das ja eigentlich hinbekommen. Hab ich da richtig gedacht? Folgendes habe ich draus gemacht:
edit: siehe nächste Antwort
_________________ INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
Zuletzt bearbeitet von jagy am 20.09.2007, 12:55, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
jagy Herb Derpington III.
Anmeldungsdatum: 26.11.2006 Beiträge: 7275
|
(#822275) Verfasst am: 20.09.2007, 12:47 Titel: |
|
|
habs noch ein bisschen umgemodelt, so siehts jetzt aus:
<html><head><title>Test</title>
</head>
<script>
function berechne()
{
a = parseInt(document.form1.jahr.value);
b = parseInt((document.form1.monat.value)-1);
c = parseInt(document.form1.tag.value);
d = parseInt(document.form1.stunden.value);
e = parseInt(document.form1.minuten.value);
f = new Date(a,b,c,d,e);
g = new Date();
minuten = g.getMinutes()-f.getMinutes();
stunden = g.getHours()-f.getHours();
tage = g.getDate()-f.getDate();
monate = g.getMonth()-f.getMonth();
jahre = g.getYear()-f.getYear();
if(minuten<0){minuten = 60+minuten; stunden--;}
if(stunden<0){stunden = 24+stunden; tage--;}
if(tage<0){tage = 30+tage; monate--;}
if(monate<0> 2000){jahre = jahre-2000}
if(jahre > 1900){jahre = jahre-1900}
document.write(tage+'.'+monate+'.'+jahre);
}
</script>
<body>
form name="form1" onsubmit="berechne()">
Tag.Monat.Jahr:
input size="3" type="Text" name="tag" value="30">.
input size="3" type="Text" name="monat" value="09">.
input size="5" type="Text" name="jahr" value="1888"><br>
Stunden.Minuten:
input size="3" type="Text" name="stunden" value="01">:
input size="3" type="Text" name="minuten" value="00"><br>
input type="Submit" value="Ok">
/form>
</body></html>
Er nimmt die Daten aus dem <form> und berechnet aber direkt neu und schreibt es dann ins Dokument. Aber irgendwie zeigt er bei mir als Monat -1 an, was ja irgendwie nicht sein kann.
Ich mussteunten die <'s weglassen, weil er es sonst nicht anzeigt.
Außerdem sehe ich gerade, dass es Monate nur mit 30 rechnet und Schaltjahre ignoriert
_________________ INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
|
|
Nach oben |
|
 |
jagy Herb Derpington III.
Anmeldungsdatum: 26.11.2006 Beiträge: 7275
|
(#822293) Verfasst am: 20.09.2007, 13:05 Titel: |
|
|
jagy hat folgendes geschrieben: | Aber irgendwie zeigt er bei mir als Monat -1 an, was ja irgendwie nicht sein kann.
|
weiß zwar nicht, was anders war, aber so klappts:
a = parseInt(document.form1.jahr.value);
b = parseInt((document.form1.monat.value)-1);
c = parseInt(document.form1.tag.value);
d = parseInt(document.form1.stunden.value);
e = parseInt(document.form1.minuten.value);
f = new Date(a,b,c,d,e);
g = new Date();
minuten = g.getMinutes()-f.getMinutes();
stunden = g.getHours()-f.getHours();
tage = g.getDate()-f.getDate();
monate = g.getMonth()-f.getMonth();
jahre = g.getYear()-f.getYear();
if(minuten<0){minuten = 60+minuten; stunden--;}
if(stunden<0){stunden = 24+stunden; tage--;}
if(tage<0){tage = 30+tage; monate--;}
if(monate<0> 2000){jahre = jahre-2000}
if(jahre > 1900){jahre = jahre-1900}
_________________ INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
|
|
Nach oben |
|
 |
jagy Herb Derpington III.
Anmeldungsdatum: 26.11.2006 Beiträge: 7275
|
(#822295) Verfasst am: 20.09.2007, 13:08 Titel: |
|
|
jagy hat folgendes geschrieben: |
Außerdem sehe ich gerade, dass es Monate nur mit 30 rechnet und Schaltjahre ignoriert |
Könnte man da nicht was mit ner for-Schleife machen?
_________________ INGLIP HAS BEEN SUMMONED - IT HAS BEGUN!
|
|
Nach oben |
|
 |
kolja der Typ im Maschinenraum

Anmeldungsdatum: 02.12.2004 Beiträge: 16631
Wohnort: NRW
|
(#823575) Verfasst am: 21.09.2007, 22:09 Titel: |
|
|
jagy hat folgendes geschrieben: | Könnte man da nicht was mit ner for-Schleife machen? |
Ja, man könnte aber auch eine while-Schleife nehmen. Macht echt keinen Unterschied.
_________________ Hard work often pays off after time, but laziness always pays off now.
|
|
Nach oben |
|
 |
|