Looping over Date Ranges

August 19, 2004

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>

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.

3 people found this page useful, what do you think?


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!
buddy.. you come to my help here... this really rocks...
Thanks Pete, for posting this -- and maintaining it online.

Recent Entries


did you hack my cf?