JavaScript Hilfe!
Geizhals » Forum » Programmierung » JavaScript Hilfe! (8 Beiträge, 169 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
JavaScript Hilfe!
13.07.2011, 11:11:28
Ich habe ein Javascript, das, je nach Startdatum von einen Meeting/Event, diese Meeting auf ein Display darstellt. Im Script gibt es eine Schleife durch ein XML-File, und von dort kriege ich (u.A.) ein Startdatum, im Format 'D/M/YYYY', also Tag/Monat/Jahr, ohne vorangehende Nullen. Heute also 13/7/2011. Es wird für jeden Meeting verglichen mit den aktuellen Datum, ob er es darstellen soll oder nicht. Leider: er stellt immer alle Meetings dar, also funktioniert der Datumsvergleich nicht...

In ein vorigen version vom Script habe ich nur die aktuelle/heutige Events darstellen lassen, das hat gut funktioniert. Da ich aber keine leere Anzeige haben wollte, habe ich es erweitert das zukünftige Meetings mit der Dauer bis zur Meeting angezeigt werden. Jetzt funktioniert es nicht mehr.

Die zwei if-Routinen am Ende habe ich auch schon als if-else versucht, das bringt das gleiche Ergebnis: sie sind irgendwie Beide wahr...

Hilfe?

Edit: Fuck! Ich habe eine riesen Logikfehler drinnen...
Was ich hier mache, ist bei _jeden_ Meeting ausgeben ob sie Heute oder in der Zukunft stattfindet. Aber: sie werden ausgegeben. Immer. Jeden. :-(
Ich muss irgendwass machen wie "Wenn es heute einen Meeting gibt, soll er gar keine Zukunftige Meetings ausgeben"...



function custom_parser( response, records ) {
  var rssDocument=parseXML( response );
  if ( rssDocument!=null ) {
    var enveloppe=rssDocument.documentElement;
    var cube=enveloppe.firstElementChild;

    var DateCurr = new Date();
    var DateStart = new Date();
    var DateEnd = new Date();
    var DailySeconds = 1000*60*60*24;
    var DateDiff;
    var DiffWeeks;
    var DiffDays;
    var DiffSWeeks;
    var DiffSDays;

    while ( cube!=null ) {

      var record = [];
	  for (var c=cube.firstElementChild; c!=null; c = c.nextElementSibling){

		if ( c.localName=="Title")
                        {
			record.title = c.textContent;
                        }
		if ( c.localName=="StartTimeFormatted")
                        {
                        DateStart = new Date();
                        DateStart.setFullYear( c.textContent.split("/")[2] , c.textContent.split("/")[1] - 1 , c.textContent.split("/")[0] );
			record.starttime = c.textContent;
                        }
		if ( c.localName=="EndTimeFormatted")
                        {
                        record.endtime = c.textContent;
                        }
		if ( c.localName=="Room")
                        {
			record.room = c.textContent.split("\\")[0];
                        }


	  }

          if ( DateCurr.getTime() >= DateStart.getTime() )
             {
             record.todayupcoming = "Todays event(s)/meeting(s):";
             records.push( record );
             record = [];
             }

          if ( DateCurr.getTime() < DateStart.getTime() )
             {
             record.todayupcoming = "Upcoming event(s)/meeting(s):";
	     DateDiff = ( DateStart.getTime() - DateCurr.getTime() ) / DailySeconds;
             DiffWeeks = Math.floor( DateDiff / 7 );
             DiffDays = Math.floor( DateDiff % 7 );
             DiffSWeeks = (DiffWeeks==1)?", ":"s, ";
             DiffSDays = (DiffDays==1)?": ":"s: ";
             record.title = "In " + DiffWeeks + " Week" + DiffSWeeks + DiffDays + " day" + DiffSDays + record.title;
             records.push( record );
             record = [];
             }

      cube=cube.nextElementSibling;
    }
  }
}


(tut leid, irgendwie nimmt das anzeigende Gerät (Hypermediaplayer HMP100 von http://www.spinetix.com ) keine Kommentare im Script an. Dann funktioniert es gar nicht...)


Save the Earth... it's the only planet with chocolate.
Wir sollten die Fekter aus- oder einweisen...



14.07.2011, 12:22 Uhr - Editiert von Ardjan, alte Version: hier
Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
....
Re(4): JavaScript Hilfe!
13.07.2011, 15:02:58
Ich habe erst keine Daten posten wollen/dürfen: Datensicherheit. Aber ich habe jetzt ein paar Meetings definiert, und die kann ich rausgeben. Das XML schaut so aus für eine Meeting Heute, und eins morgen:

<?xml version="1.0" encoding="utf-8" ?> 
<Meetings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <MeetingItemEntity>
  <ListId>00000000-0000-0000-0000-000000000000</ListId> 
  <WebId>00000000-0000-0000-0000-000000000000</WebId> 
  <UniqueId>00000000-0000-0000-0000-000000000000</UniqueId> 
  <Id>3182</Id> 
  <Title>Testmeeting for Announcement Screen</Title> 
  <Created>0001-01-01T00:00:00</Created> 
  <LastModified>0001-01-01T00:00:00</LastModified> 
  <StartTimeFormatted>13/7/2011</StartTimeFormatted> 
  <EndTimeFormatted>13/7/2011</EndTimeFormatted> 
  <Room>Media Room</Room> 
 </MeetingItemEntity>
 <MeetingItemEntity>
  <ListId>00000000-0000-0000-0000-000000000000</ListId> 
  <WebId>00000000-0000-0000-0000-000000000000</WebId> 
  <UniqueId>00000000-0000-0000-0000-000000000000</UniqueId> 
  <Id>3132</Id> 
  <Title>Testmeeting 2</Title> 
  <Created>0001-01-01T00:00:00</Created> 
  <LastModified>0001-01-01T00:00:00</LastModified> 
  <StartTimeFormatted>14/7/2011</StartTimeFormatted> 
  <EndTimeFormatted>14/7/2011</EndTimeFormatted> 
  <Room>Conference Room</Room> 
 </MeetingItemEntity>
</Meetings>

In diesen Fall soll er nur der heutige Meeting rausgeben, also der erste if-Statement sollte anschlagen. Wenn der Datum vom ersten Meeting auf zB 15/7/2011 geändert wird, soll er (heute) zwei mal in der zweite If-Statement kommen...

Es gibt ein paar extra Felder, die beachte ich nicht, und sind auch irrelevant...


Save the Earth... it's the only planet with chocolate.
Wir sollten die Fekter aus- oder einweisen...



Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung