4

次の形式のリストとして日付があります。

09-2012,10-2012,01-2013 

リストから最小および最大の日付にアクセスするより良い方法は何ですか?

4

4 に答える 4

6

どちらが速いかはよくわかりません。これが私のリストのみのソリューションです。または、リストを配列に変換して操作することもできます。

ただし、これは仕事をします:

<CFSET dates = "" />
<CFLOOP list="09-2012,10-2012,01-2013" index="date">
    <CFSET dates = listappend(dates,DateFormat(createDate(listlast(date,"-"),listfirst(date,"-"),1), "yyyy-mm-dd")) />
</CFLOOP>
<CFSET dates = listsort(dates,"numeric") />
<CFSET min_date = listfirst(dates) />
<CFSET max_date = listlast(dates) />
于 2012-06-20T10:04:37.690 に答える
5

リストの日付を yyyy-mm-dd に変換することをお勧めします。

次に、 ListSort でリストを並べ替えるだけで、 listfirst と listlast で最初と最後の日付を取得できます

于 2012-06-20T09:56:37.777 に答える
1

Seybsenの答えと同様に、正規表現のパスをたどるだけです。

<cfscript>
var data = "09-2012,10-2012,01-2013";
data = listSort( reReplace( data, '([0-9][0-9])-([0-9][0-9][0-9][0-9])', '\2-\1', 'all' ), 'numeric', 'asc' );
var minDate = listFirst( data );
var maxDate = listLast( data );
</cfscript>
于 2012-06-21T14:07:26.717 に答える