Pete Freitag Pete Freitag

Looping over Date Ranges


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.

Like this? Follow me ↯

Looping over Date Ranges was first published on August 19, 2004.

FuseGuard Web App Firewall for ColdFusion

The FuseGuard Web Application Firewall for ColdFusion & CFML is a high performance, customizable engine that blocks various attacks against your ColdFusion applications.


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!!!
by johnb on 08/19/2004 at 2:10:22 PM UTC
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>
by Christopher Wigginton on 08/19/2004 at 3:08:16 PM UTC
That's pretty cool Christopher!
by Pete Freitag on 08/19/2004 at 4:58:44 PM UTC
Thanks Pete, for posting this -- and maintaining it online.
by Kamil on 07/18/2011 at 1:40:04 PM UTC