Datetime ColdFusion-日期/时间-插入日期范围的可用插槽

Datetime ColdFusion-日期/时间-插入日期范围的可用插槽,datetime,coldfusion,coldfusion-9,Datetime,Coldfusion,Coldfusion 9,又头痛了一天。需要对某些内容进行一些更改,并首先填充可用的内容。基本上从某物打开到关闭。每15分钟添加一个可用的点 我可以得到开始日期和结束日期填充-但不能得到内部循环填充需要插入的增量时间。。。这里有点迷路。。。感谢您的帮助 开始日期和结束日期来自cfform-工作正常 Start Date:<br> <cfinput type="datefield" name="startDate" required="true" message="Start Date R

又头痛了一天。需要对某些内容进行一些更改,并首先填充可用的内容。基本上从某物打开到关闭。每15分钟添加一个可用的点

我可以得到开始日期和结束日期填充-但不能得到内部循环填充需要插入的增量时间。。。这里有点迷路。。。感谢您的帮助

开始日期和结束日期来自cfform-工作正常

    Start Date:<br>
    <cfinput type="datefield" name="startDate" required="true" message="Start Date Required">
    <br><br>
    End Date:<br>
    <cfinput type="datefield" name="EndDate" required="true" message="End Date Required">


         <cfloop index="dtToday" from="#StartDate#" to="#EndDate#"> 
         <cfoutput>

         <br>#DateFormat(dttoday)#<br>

             <cfloop index="incr" from="#TimeFormat(sadd.topen)#" to="#TimeFormat(sadd.tclose)#" step="#CreateTimeSpan( 0, 0, sadd.increment, 0 )#"> 

             [#TimeFormat(incr)#]

              Do Database Insert of Date/Time at increments

             </cfloop>



         <cfset schdate = #DateAdd('d', 1, '#schdate#')#>
         </cfoutput>    
         </cfloop>

我修改了你的代码以便能快速测试。CF Live在Railo和CF中展示了这一点

不清楚您的问题来自何处,因为我没有对您的代码进行任何重大更改

<!--- You can get rid of these two form declarations, and the sadd declaration. This was just mimicking your data. --->
<cfset form.startdate = "11/17/95">
<cfset form.enddate = "12/20/95">
<cfset sadd = {topen= "13:00", tclose= "17:00", increment = 15}>

<cfif isDate(form.startdate) and isDate(form.enddate)>
    <cfloop index="dtToday" from="#form.StartDate#" to="#form.EndDate#"> 
        <cfoutput>
            <br>#DateFormat(dttoday)#<br>
            <cfloop index="incr" from="#TimeFormat(sadd.topen)#" to="#TimeFormat(sadd.tclose)#" step="#CreateTimeSpan( 0, 0, sadd.increment, 0 )#"> 
                [#TimeFormat(incr)#] - Do Database Insert of Date/Time at increments<br>
            </cfloop>
            <!---<cfset schdate = #DateAdd('d', 1, '#schdate#')#>--->
        </cfoutput>    
    </cfloop>
<cfelse>
    One or both of the dates entered is invalid.
</cfif>
我改变了:

我形成了范围为startdate和enddate的表单,它不应该对您的代码产生任何负面影响,只是startdate看起来是合乎逻辑的。虽然这是正确的做法,但它可能导致问题的唯一方式是如果您在多个作用域中有名为startdate和/或enddate的变量。针对这一点的安全性和针对利用这一点的安全性正是确定变量范围的最佳实践的原因。 对于示例数据,我将开始时间设置为13:00 1:00 PM,结束时间设置为17:00 5:00。您也可以使用下午1:00和下午5:00的正常格式。 我注释掉了schDate,因为它的用法在这里并不明显。 我添加了一个sadd范围来模拟您的数据可能是什么。将来,请提供您的数据实际外观的示例:
输出变量时,你看到你认为应该看到的了吗?什么也看不到-尝试在dateadd内部循环中执行步骤增量-仍然什么都没有…TimeFormatsadd.topen-TimeFormatsadd.tclose-sadd.increment minutes-给我06:00-00:00和15分钟-你能更新你的帖子,使其成为一个我们可以在自己的环境中测试的独立示例吗?如果不知道变量的确切值和类型(如StartDate、sadd.topen等),很难知道您得到了什么样的结果以及原因。您的外部循环现在有一个dt索引,但在循环结束时,您更改了一个名为schDate的变量。