On the CF-Talk mailing list today someone asked how to loop over a range of dates, eg from 6/1/04 to 8/6/04. Most people including myself responded that you can use DateAdd and cfloop to do this. But John Beynon posted the simplest solution:
<cfset startDate= "06/01/2004"> <cfset endDate = "08/06/2004"> <cfloop from="#startDate#" to="#endDate#" index="i"> <cfoutput>#dateformat(i, "mm/dd/yyyy")#<br /></cfoutput> </cfloop>
I didn't know you could use dates in the from
and to
attributes of cfloop. I had to try it myself, and sure enough it works. I checked the documentation and I didn't see any mention of it - learn something new everyday.
Comments
it was a surprise to me too when i tried it out after first posting the dateadd() response! I thought i''d have seen an error but it seems to work!!!
and to expand on this.... <cfset startTime = CreateTime(0,0,0)> <cfset endTime = CreateTime(23,59,59)> <cfloop from="#startTime#" to="#endTime#" index="i" step="#CreateTimeSpan(0,0,30,0)#"> <cfoutput>#TimeFormat(i, "hh:mm tt")#<br /></cfoutput> </cfloop>
That''s pretty cool Christopher!
Thanks Pete, for posting this -- and maintaining it online.