2010-05-28 131 views
1

我有一個演唱會日期的XML文件。在我的flash/AS3文件中,我只想顯示相對於當前日期的即將到來的事件。AS3距離今天最近的日期

像這樣:

事件01:30-05-2010

事件02:2010年2月6日

事件03:2010年5月6日

今天是28 -05-2010,所以我需要列出事件01.在01-06-2010我需要列出事件02.

我有基本的AS3代碼列出的XML工作,但我有麻煩過濾結果。

任何想法? 謝謝。

回答

1

構建每個日期Date對象和比較它們的getTime()值 - 這是自1月1日通過的毫秒數,1970年

+0

謝謝你Amarghosh。與此同時,我想出了另一種方式,所以我沒有嘗試過你......不過謝謝! – fana 2010-05-28 10:49:47

0

我想這個作品:

var my_date:Date = new Date(); 
var dia:Date = new Date(my_date.fullYear,my_date.month,my_date.date); 
//var dia:Date = new Date(2010,05,06); 
var nowEvent1:Date = new Date(2010,04,30); 
var nowEvent2:Date = new Date(2010,05,02); 
var nowEvent3:Date = new Date(2010,05,05); 
var nowEvent4:Date = new Date(2010,05,06); 

var eventArray:Array = [nowEvent1,nowEvent2,nowEvent3,nowEvent4]; 

for (var i:int; i < eventArray.length; i++) { 
    if (eventArray[i] >= dia) { 
     trace(eventArray[i]); 
     return; 
    } 
} 

這只是一個硬編碼的樣本值(因爲XML代碼太大),但它似乎正在工作。更改「dia」變量將返回正確的即將到來的事件日期。

在我的代碼中,我從由PHP設置的flashvar獲取當前日期,然後將其轉換爲Flash中的日期對象。

如果有人有興趣,我可以張貼整個代碼。而且我也嘗試過更好的方式!

+0

你確定數組中的日期將被排序嗎?如果日期沒有排序,這將不起作用。另外,我不知道比較是如何工作的 - 它使用'toString'(在這種情況下,你不應該使用這一點 - 它會失敗)或'time'? – Amarghosh 2010-05-28 11:05:02

+0

以及你說得對排序,但日期是在XML排序所以對於本例,將工作。使用日期的對象,這一點我覺得比較會是最好的方式 – fana 2010-05-28 11:25:57