Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-06-2009, 14:53   #1 (permalink)
Neuer User
 
Benutzerbild von Speedy19102000
 
Registriert seit: May 2006
Beiträge: 38
Probleme mit Alter annzeigen

Hallo!

Ich versuche verzweifelt, dass zusätzlich zu dem JS, dass Alter mit angezeigt wird.
Mein Versuch bislang ist, den Wert für das 'new Date()' auszulesen, wenn ein Geburtstag ansteht, welches das alert() anzeigt,
aber ich weis nicht, wie ich es machen soll, 'Tag, Monat, Jahr' zu deffinieren und dann zu Berechnen.

Hier mein bisheriger Versuch:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

</head>
<body>

<script type="text/javascript">
var x0 = new Array();
var x1 = new Array();

x1.push(new Array(5,12,1968,"Stefan"));//Tag,Monat,Jahr,Name
x1.push(new Array(13,3,1980,"Michi"));
x1.push(new Array(13,3,1901,"Tomas"));
x1.push(new Array(13,3,2002,"Carsten"));
x1.push(new Array(14,3,1979,"Peter"));
x1.push(new Array(21,6,2000,"Heike"));

var a1 = new Date();
var a2 = a1.getDate();
var a3 = a1.getMonth()+1;

for(i1 in x1){
if(x1[i1]){
if(x1[i1][0]==a2 && x1[i1][1]==a3){
x0.push(i1);

var Gebdaten = (x1[i1]);
var Geburtsdatum = Gebdaten.slice(0,3);
var heute = new Date(Geburtsdatum);
var Alter = heute - Geburtsdatum;
var Alter = Math.floor(Alter/31536000000);

//alert(Geburtsdatum);

}
}
else{
break;
}
}
if(x0.length==0){
document.write("Heute hat niemand Geburtstag");
}
else{
var x2 = "Heute " + ((x0.length==1)?"hat":"haben");
for(i1 in x0){
x2+=((i1>0)?((i1==(x0.length-1))?"<br>und ":", "):" ") + x1[x0[i1]][3] + " ("+ x1[x0[i1]][2] +" = " + Alter + " Jahre)"; 
}
document.write(x2+" Geburtstag");
}
 
</script>


</body>
</html>
Ich hoffe, dass mir hier jemand helfen kann, vielen Dank schonmal!

MfG
__________________
Intelligenz ist die Fähigkeit, andere nicht dumm aussehen zu lassen!

Geändert von Speedy19102000 (21-06-2009 um 15:24 Uhr)
Speedy19102000 ist offline   Mit Zitat antworten
Alt 21-06-2009, 16:52   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
genauso wie das actionscript-Date, so hat auch das javascript-Date eine reihe von methoden und eigenschaften:

http://de.selfhtml.org/javascript/objekte/date.htm
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 21-06-2009, 17:28   #3 (permalink)
Neuer User
 
Benutzerbild von Speedy19102000
 
Registriert seit: May 2006
Beiträge: 38
Sorry, aber damit habe ich mich auch schon befasst!
Aber leider klappt das mit der Umsetzung nicht, darum wende ich mich, nach zahlreichen missglückten Versuchen, an dieses Forum.

MfG
__________________
Intelligenz ist die Fähigkeit, andere nicht dumm aussehen zu lassen!
Speedy19102000 ist offline   Mit Zitat antworten
Alt 21-06-2009, 18:31   #4 (permalink)
?-Developer
 
Registriert seit: Jul 2004
Ort: Zuchwil (CH)
Beiträge: 902
Schau mal das hier an:
http://www.schmittis-page.de/index.html?/java/t7.htm

Sonst einfach googlen: 'javascript alter berechnen'
__________________
Nur tote Fische schwimmen mit dem Strom
silentx ist offline   Mit Zitat antworten
Alt 21-06-2009, 18:47   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
http://seibsprogrammladen.de/frame1....gorithmen/Date
Geburtstag
Alter in Jahren

(ist zwar actionscript, muss aber mit javascript genauso gehen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-06-2009, 01:12   #6 (permalink)
Neuer User
 
Benutzerbild von Speedy19102000
 
Registriert seit: May 2006
Beiträge: 38
Hallo!

Danke erstmal für Eure Antworten!

@silentx:
Dort war ich auch schon bei meiner suche, habe es aber damit auch nicht umsetzen können.

@hgseib:
Auf dieser Seite war ich bei meiner Suche noch nicht, welcher von Dir gemeinten Teil schon einmal vielversprechend aussieht.

Ich schieb den Code mal hier hinein:
Code:
function fAlter(g)
{ var h = new Date();
  var d = new Date(0, 0, 0, 0, 0, 0, h.valueOf()-g.valueOf());
  return d.getFullYear()-1900;
}
//
// Anwendungsbeispiel:
trace(fAlter(fString2Date("26.2.2006")));
trace(fAlter(fString2Date("27.2.2006")));
trace(fAlter(fString2Date("11.11.1711")));
Jetzt nun meine Frage:
Liege ich den mit meinem bisherigen code (gaanz oben), welches mir wenigstens schon einmal das Datum ausgibt, richtig oder ist das Mumpitz?
Und welcher Teil, des hier kopierten Codes ist dann für mich relevant?

Erwartet bitte nicht zu viel von mir.
Meine Stärken liegen eher bei CSS, als bei JS und ich mache es nur als Hobby nebenbei.

MfG
__________________
Intelligenz ist die Fähigkeit, andere nicht dumm aussehen zu lassen!
Speedy19102000 ist offline   Mit Zitat antworten
Alt 23-06-2009, 20:53   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
fString2Date hast du nicht mit kopiert?

und testen geht in javascript mit alert
z.b.

...
alert(new Date());


und schau dir doch nochmal den link an, den ich dir gegeben hatte, da sind auch komplette scripte dabei. da sieht man doch, was man mit dem zeit-objekt alles machen kann.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 23-06-2009, 21:15   #8 (permalink)
Neuer User
 
Benutzerbild von Speedy19102000
 
Registriert seit: May 2006
Beiträge: 38
@hgseib

Moin!

Ich bin schon 3 Stunden dabei mein Problem zu lösen, hatte schon den den ganzen Desktop voll mit Versuchen es richtig einzubinden.
Ich sehe schon den Wald vor lauter Bäumen nicht mehr. Erlöse mich bitte von minen Leiden!!!
Kann für Dich ja nicht so schwer sein, bist ja auch ein Profi

Vielen Dank!

MfG
__________________
Intelligenz ist die Fähigkeit, andere nicht dumm aussehen zu lassen!
Speedy19102000 ist offline   Mit Zitat antworten
Alt 25-06-2009, 12:29   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Code:
<script>
function fString2Date(d)
{ var t=d.split('.');
  return new Date(t[2], t[1]-1, t[0]);
}
function fAlter(g)
{ var h = new Date();
  var d = new Date(0, 0, 0, 0, 0, 0, h.valueOf()-g.valueOf());
  return d.getFullYear()-1900;
}
alert(fAlter(fString2Date('15.8.1988')));
alert(fAlter(fString2Date('11.12.2004')));
alert(fAlter(fString2Date('15.8.1888')));
</script>
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-06-2009, 02:29   #10 (permalink)
Neuer User
 
Benutzerbild von Speedy19102000
 
Registriert seit: May 2006
Beiträge: 38
Moin!

Ja, ich hab mal versucht die Funktionen in das schon vorhandene einzusetzen und mit den vorhanenen x1 Werten zu verknüpfen...
Und siehe da, ich habe es tatsächlich geschafft und somit ein Problem gelöst.

Nun habe ich ein neues Problem, und zwar das 'Jahrtausendproblem'!
Bis 1999 wird das Alter richtig berechnet, sobald aber jemand ab dem Jahr 2000 geboren worden ist, stimmt das Alter nicht mehr
Es wird immer ein Jahr zu wenig gerechnet.

Hast Du das in Deinem JS nicht mit bedacht, oder ist das (wiedermal) ein Fehler von mir?

Also, mein JS sieht jetzt volgendermaßen aus:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd"
>
<
html>
<
head>
<
title>Test</title>
<
meta http-equiv="content-type" content="text/html; charset=UTF-8">

</
head>
<
body>

<
script type="text/javascript">
 var 
x0 = new Array();
 var 
x1 = new Array();

 
x1.push(new Array(5,12,1968,"Stefan"));
 
x1.push(new Array(13,3,1980,"Michi"));
 
x1.push(new Array(13,3,1901,"Tomas"));
 
x1.push(new Array(13,3,2002,"Carsten"));
 
x1.push(new Array(14,3,1979,"Peter"));
 
x1.push(new Array(26,6,2000,"Marita"));

 var 
a1 = new Date();
 var 
a2 a1.getDate();
 var 
a3 a1.getMonth()+1;

 for(
i1 in x1){
 if(
x1[i1]){
 if(
x1[i1][0]==a2 && x1[i1][1]==a3){
 
x0.push(i1);

function 
Datum(d) {
 var 
t=d.split('.');
 return new 
Date(t[2], t[1]-1t[0]);
}

function 
Alter(g) {
 var 
= new Date();
 var 
= new Date(000000h.valueOf()-g.valueOf());
 return 
d.getFullYear()-1900;
}

 var 
x1Wert x1[i1];
 var 
KmaZuPkt x1Wert.join(".");
 var 
DWert KmaZuPkt.slice(0,9);
}
}
else{
 break;
}
}
if(
x0.length==0) {
 
document.write("Heute hat niemand Geburtstag");
}
else{
 var 
x2 "Heute " + ((x0.length==1)?"hat":"haben");
 for(
i1 in x0){
 
x2+=((i1>0)?((i1==(x0.length-1))?"<br>und ":", "):" ") + x1[x0[i1]][3] + " ("x1[x0[i1]][2] +" = " Alter(Datum(DWert)) + " Jahre)"
}
document.write(x2+" Geburtstag");
}
</script>

</body>
</html> 
Ich denke, dass ich in diesem Bereich noch etwas hinzufügen muss:
function Alter(g) {
var h = new Date();
var d = new Date(0, 0, 0, 0, 0, 0, h.valueOf()-g.valueOf());
return d.getFullYear()-1900+1;
}


Ich habe mir einige Beispiele im Internet angesehen und versucht umzusetzen.
Z.B. Das mit +1 müsste doch irgendwie als if-Anweisung gemacht werden,
welches ich schon verschiedenfach ausprobiert habe, mir aber nicht gelungen ist.

Kannst Du mir sagen, wie ich es machen muss?

MfG
__________________
Intelligenz ist die Fähigkeit, andere nicht dumm aussehen zu lassen!
Speedy19102000 ist offline   Mit Zitat antworten
Alt 27-06-2009, 13:27   #11 (permalink)
Neuer User
 
Benutzerbild von Speedy19102000
 
Registriert seit: May 2006
Beiträge: 38
Hallo Zusammen!

Leider habe ich bis jetzt mein Problem nicht in der Griff bekommen.
Wenn also jemand weis, wo der Fehler steckt, möge mir bitte helfen, Danke!

MfG
__________________
Intelligenz ist die Fähigkeit, andere nicht dumm aussehen zu lassen!
Speedy19102000 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele