从数据库中抓取分隔日期并向列表中添加新日期,然后希望按日期的正确顺序排列所有日期。
<cfparam default="" name="newDates">
<cfloop index="tm" from="#form.arrive#" to="#form.depart#" step="#createTimespan(1,0,0,0)#">
<cfset newDates = newDates & '#dateFormat( tm, "mm/dd/yyyy" )#,'>
</cfloop>
<cfset penddate = '#pmonthlist#, #newDates#'>
我如何才能得到这个结果。
15分之7/ 2012,7 / 16 / 2012,7 / 17 / 2012,7 / 18 / 2012,7 / 19 / 2012,7 / 20 / 2012,7 / 21 / 2012,9 /二千〇一十二分之二十一,9/22 / 2012,9 / 28/2012/29 / 2012,04 / 01 / 2012,04 / 02 / 2012,04 / 03 / 2012,04 / 04 / 2012,04 / 05 / 2012,04 / 06 / 2012,04 / 07/2012,
并将其设为正确的日期顺序。 (这是我想要的结果)
04/01 / 2012,04 / 02 / 2012,04 / 03 / 2012,04 / 04 / 2012,04 / 05 / 2012,04 / 06 / 2012,04 / 07 / 2012,7 /二千零十二分之十五7/16 / 2012,7 / 17 / 2012,7 / 18 / 2012,7 / 19 / 2012,7 / 20 / 2012,7 / 21 / 2012,9 / 21 / 2012,9 / 22 / 2012,9 / 28 / 2012,9 /二千〇一十二分之二十九
答案 0 :(得分:8)
更新解决方案#0 - 只需使用arraySort(dates, 'numeric')
对其进行排序(在Railo中不起作用),请参阅:http://www.cfgears.com/index.cfm/2010/10/7/Using-an-array-to-sort-dates
解决方案#1 - 对日期数组进行排序
dates
ListToArray()
列表转换为数组
DateFormat()
将其作为YYYYMMDD
ArraySort(dates, 'numeric')
DateFormat()
将其转回M/D/YYYY
ArrayToList()
解决方案#2 - 使用查询查询
QueryAddRow()
和QuerySetCell()
SELECT MyDate FROM myQuery ORDER BY MyDate
ValueList(myQuery.myDate)
解决方案#3 - 使用Java
javacast
将每个日期转换为java.util.Date
sort()
中调用java.util.Collections
醇>
解决方案#4 - 使用DateCompare()
DateCompare()
编写您自己的排序算法(插入排序?冒泡排序?),以比较日期。解决方案#5 - 使用DB临时表
ORDER BY