Skip to main content
June 18, 2012
Answered

How can I loop instead of hardcoding this info

  • June 18, 2012
  • 1 reply
  • 2401 views

Hi all

I have the following code, how can I cfloop and dynamically output this info instead of having to have each meeting time? Thanks

<cfselect name="MEETINGTIME" width="90" label="Time"onchange="UsersGrid.dataProvider.editField(UsersGrid.selectedIndex, 'MEETINGTIME', MEETINGTIME.selectedItem.data);">

                        <option value="None">None</OPTION>

                            <option value="05:30 AM">05:30 AM</option>

                            <option value="06:00 AM">06:00 AM</option>

                            <option value="06:30 AM">06:30 AM</option>

                            <option value="07:00 AM">07:00 AM</option>

                            <option value="07:30 AM">07:30 AM</option>

                            <option value="08:00 AM">08:00 AM</option>

                            <option value="08:30 AM">08:30 AM</option>

                            <option value="09:00 AM">09:00 AM</option>

                            <option value="09:30 AM">09:30 AM</option>

                            <option value="10:00 AM">10:00 AM</option>

                            <option value="10:30 AM">10:30 AM</option>

                            <option value="11:00 AM">11:00 AM</option>

                            <option value="11:30 AM">11:30 AM</option>

                            <option value="12:00 AM">12:00 AM</option>

                            <option value="12:30 AM">12:30 AM</option>

                            <option value="01:00 AM">01:00 AM</option>

                            <option value="12:00 PM">12:00 PM</option>

                            <option value="12:30 PM">12:30 PM</option>

                            <option value="01:00 PM">01:00 PM</option>

                            <option value="01:30 PM">01:30 PM</option>

                            <option value="02:00 PM">02:00 PM</option>

                            <option value="02:30 PM">02:30 PM</option>

                            <option value="03:00 PM">03:00 PM</option>

                            <option value="03:30 PM">03:30 PM</option>

                            <option value="04:00 PM">04:00 PM</option>

                            <option value="04:30 PM">04:30 PM</option>

                            <option value="05:00 PM">05:00 PM</option>

                            <option value="05:30 PM">05:30 PM</option>

                            <option value="06:00 PM">06:00 PM</option>

                            <option value="06:30 PM">06:30 PM</option>

                            <option value="07:00 PM">07:00 PM</option>

                            <option value="07:30 PM">07:30 PM</option>

                            <option value="08:00 PM">08:00 PM</option>

                            <option value="08:30 PM">08:30 PM</option>

                            <option value="09:00 PM">09:00 PM</option>

                            <option value="09:30 PM">09:30 PM</option>

                            <option value="10:00 PM">10:00 PM</option>

                            <option value="10:30 PM">10:30 PM</option>

                            <option value="11:00 PM">11:00 PM</option>

                            <option value="11:30 PM">11:30 PM</option>

                          </cfselect>

    This topic has been closed for replies.
    Correct answer -__cfSearching__-

    Hi Dan, thanks I tried this it is almost working, I get all the times in half hour intervals from 8 - 5.30 but in the wrong date!! {ts '1899-12-30 08:00:00'}

    <cfset YourDateTime = "7:30AM">
    <cfset MaxDateTime = "11:30PM">

    <cfset startweek_dt = TimeFormat(YourDateTime, "hh:mm") >
    <cfloop index="ii" from="1" to="20">
      <cfset startweek_dt = DateAdd('n',30, startweek_dt)>
      <cfoutput>#startweek_dt#</cfoutput><br>
      </cfloop>


    I get all the times in half hour intervals from 8 - 5.30 but in the wrong date!! {ts '1899-12-30 08:00:00'}

    It is not the wrong date.  Since you only specified a time (ie "07:30AM") the "date" portion defaults to 0 or 12/30/1899 .  If you needed a specific time and date, you must specify it when creating the variables. For example:

          <cfset YourDateTime = createDateTime(2012, 6, 25, 7, 30, 0)> ... or

          <cfset YourDateTime = parseDateTime("2012-06-25 07:30AM")>

    BUT .. in your case it does not make a difference because you are not using the date for anything. So just use timeFormat() to display the time only.

         ie     #timeFormat( yourVariableName,  'hh:mm:ss tt')#

    1 reply

    Inspiring
    June 18, 2012

    Use cfloop condition = "YourDateTime lte #MaxDateTime#"

    inside your loop use DateAdd to increment YourDateTime and use TimeFormat to display it.

    June 25, 2012

    Like this Dan? Thanks

    <cfset YourDateTime = "7:30AM">
    <cfset MaxDateTime = "11:30PM">

    <cfloop condition = "YourDateTime lte #MaxDateTime#">
    #timeFormat(dateAdd('n', 30, YourDateTime),'hh:mm:ss tt')#
    </cfloop>

    Inspiring
    June 25, 2012

    Did it work when you ran it?