Jag har gjort en flash som läser RSS feeds. Problemet är det att tiden som används i feeden är i formatet GMT. Exempelvis så ska 09:45 ändras till 10:45.
Det är variablen subHour som jag vill lägga på en timme på.
Det är ju aningen bökigt att räkna ut alla värden då en extra timme kan ändra datum, månad och tom år.
Olika långa månader och skottår gör det knappast till en enkel operation.
Vad du får göra är att använda Flash date funktion.
Kolla "Date constructor" i Flash hjäpen så ser du hur du skall skapa ett nytt datumobjekt från de värden du har.
Sedan kan du lägga till en timme genom att helt enkelt addera 360000 (ms i en timme) till ditt datumobjekt och det kommer automatiskt ha rätt timme, dag, månad och år.
Datum strängen som jag hämtar från RSS:en ser ut så här Thu, 25 Jan 2007 09:33:21 GMT. Så jag har brutit ut alla delar utom månaden som jag inte vet hur jag ska få om till en siffra istället för text.
itemDate = rss.childNodes[i].childNodes[j].firstChild.nodeValue; //Thu, 25 Jan 2007 09:33:21 GMT
subYear = itemDate.substring(12, 16);
subDay = itemDate.substring(5, 7);
subHour = itemDate.substring(17, 19);
subMin = itemDate.substring(20, 22);
//
var addHour:Date = new Date(subYear,0,subDay,subHour,subMin);
var timetoadd:Number = 1000 * 60 * 60;
addHour.setTime(addHour.getTime() + timetoadd);
Time = addHour.getHours() + ":" + addHour.getMinutes();
Formatet som jag vill ha ut det i sen med GMT+1 är 10:33 25 Jan 2007
jag provade det också och det gick bra i en tom fla.
Ser nu att variablen i och l krockar med mitt övriga script som läser in RSS:en.
Vad kan dom bytas ut mot?
jag hittade felet nu. Jag hade lagt funktionerna inuti en For sats. Lite dumt av mig men nu fungerar det.
Nu har jag enbart ett litet problem kvar och det är när det är tal mindre än 10. Så blir klockan exempelvis 17:4 istället för 17:04.
Stod helt still. Så klart att det inte var svårare än en if sats som kollar. För er som vill se slutgiltiga koden så finns den här.
Tack för all hjälp.