Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-11-2006, 20:37   #1 (permalink)
Neuer User
 
Benutzerbild von DjCrEdo
 
Registriert seit: Jan 2006
Beiträge: 24
XML datum als zahl auslesen und mit dem aktuellen datum vergleichen

Hallo erstmal!

Schonmal vorweg: bitte nicht schlagen, wenn es die Frage hier schonmal gibt - ich habe bis eben etwa 1,5 Stunden lang danach gesucht, jedoch nichts brauchbares gefunden..

Nun, zu meinem Problem:

Ich habe einen Veranstaltungskalender, der jeweils die Details zu den Verarnstaltungen anzeigt, die in einer XML-Datei durchgeschrieben sind - sowohl die Vergangenen, als auch die noch kommenden Veranstaltungen. Momentan ist es so aufgebaut, dass am Anfang immer der erste Eintrag aus XML gezeigt wird. Was ich jedoch haben möchte: dass das Datum, das im XML steht erst mit dem aktuellen verglichen werden soll und: wenn der XML-Eintrag in Vergangenheit liegt, dann nächstes childNode vergleichen, ansonsten anzeigen

Mein Ansatz dazu, mit dem ich nicht weiterkomme:
PHP-Code:
var aktev 0;
var 
datum = new Date();
var 
aktday datum.getDay();
var 
aktmonth datum.getMonth();
var 
aktyear datum.getFullYear();
var 
aktdatum aktyear aktmonth aktday;
var 
evdatum ev_xml.firstChild.childNodes[aktev].attributes.date;
    if (
aktdatum>evdatum) {
        
aktev++;
    }
lade(aktev); 
Der Eintrag "date" in der XML-Datei sieht wie folgt aus: z.B. für heutiges Datum:
date="20061129"
also, jjjjmmtt

und das ganze gibt "undefined" statt Details.
Fehler im restlichen Script kann ich ausschließen, da es ja ohne diese Abfragen wunderbar funktioniert.

Meine Vermutung wäre, dass der XML-Eintrag als Text gelesen wird, statt als Zahl und somit kann man den natürlich nicht mathematisch mit einer Zahl vergleichen. Jedoch weiß ich auch nicht wie das zu lösen wäre, da ich dazu leider auch nichts gefunden habe. Ist aber nur eine Vermutung - bin relativ am Anfang, was AS angeht und blicke da noch nicht soo super durch.

Wäre für jede Hilfe dankbar!

PS: ich würde es gern ohne PHP lösen

Geändert von DjCrEdo (29-11-2006 um 20:39 Uhr)
DjCrEdo ist offline   Mit Zitat antworten
Alt 29-11-2006, 20:54   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Code:
date_str = "20061129";
//
jahr = Number(date_str.substr(0, 4));
monat = Number(date_str.substr(4, 2));
tag = Number(date_str.substr(6, 2));
test_date = new Date(jahr, monat-1, tag);
//
jetzt = new Date();
heute = new Date(jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate());
//
if (Number(test_date) == Number(heute)) {
	trace("das ist heute");
} else {
	trace("das ist nicht heute");
}
oder
Code:
date_str = "20061129";
jetzt = new Date();
test_str = jetzt.getFullYear()+("0"+(jetzt.getMonth()+1)).substr(-2)+("0"+jetzt.getDate()).substr(-2);
if (date_str == test_str) {
	trace("das ist heute");
} else {
	trace("das ist nicht heute");
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (29-11-2006 um 21:04 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 29-11-2006, 21:30   #3 (permalink)
Neuer User
 
Benutzerbild von DjCrEdo
 
Registriert seit: Jan 2006
Beiträge: 24
Danke für die schnelle Hilfe!

Jedoch habe ich noch ein paar Fragen bzw. Anmerkungen dazu:

Der von dir vorgeschlagene Script funktioniert bei mir leider nicht, habe es jedoch erst nur ausprobiert, mich aber noch nicht damit auseinandergesetzt.

die zeile
PHP-Code:
date_str "20061129"
gibt ja das datum an, das mit dem aktuellen verglichen werden soll. Und das ist genau das, was ich nicht möchte. Denn der Veranstaltungskalender wird ja immer wieder aktualisiert, und somit habe ich kein festes Datum. Es soll das Datum der jeweiligen Veranstaltung als Vergleich genommen werden und steht in der XML-Datei.

PHP-Code:
heute = new Date(jetzt.getFullYear(), jetzt.getMonth(), jetzt.getDate()); 
Warum das "jetzt.getDate()" am Ende? Müsste es nicht "jetzt.getDay()" heißen?

Dann zum zweiten Vorschlag:

PHP-Code:
test_str jetzt.getFullYear()+("0"+(jetzt.getMonth()+1)).substr(-2)+("0"+jetzt.getDate()).substr(-2); 
Heißt es, dass bei Monat und Tag IMMER eine 0 davor gesetzt wird? Und was bewirkt das ".substr(-2)"?
Beim ersten Beispiel heißt es ja, nehme ich mal an (date_str.substr(4, 2)); - vom 4. Zeichen an 2 Zeichen lang. Und hier?
DjCrEdo ist offline   Mit Zitat antworten
Alt 29-11-2006, 21:48   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
date_str = "20061129";
das ist doch nur der string, den du aus deinem xml rausliest - das ich nunmal nicht habe. wie sonst sollte ich das script testen können, wenn ich mir nicht selbst eine 'eingabe' bastle?

der unterschied von 'jetzt' zu 'heute' ist, das bei 'jetzt' noch die uhrzeit dabei ist. somit ist der reine zahlenwert grösser.

die bedeutung von getDay() bitte mal in der flash-hilfe nachlesen.

("0"+jetzt.getDate()).substr(-2)
tag und monat können nur eine ziffer lang sein.
substr(-2) (befehle bitte in der flash-hilfe nachlesen) nimmt die letzten 2 zeichen des strings.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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 13:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele