| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User 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: 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) |
| | |
| | #2 (permalink) |
| Techniker 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");
} 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) |
| | |
| | #3 (permalink) |
| Neuer User 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: PHP-Code: Dann zum zweiten Vorschlag: PHP-Code: 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? |
| | |
| | #4 (permalink) |
| Techniker 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 |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |