2014-10-30 102 views
-2

再次头痛的一天。需要对某些东西进行一些更改并首先填充可用的东西。基本上从什么时候开放到关闭。并且每15分钟添加一次可用点。ColdFusion - 日期/时间 - 插入日期范围的可用插槽

我可以得到开始日期和结束日期填充 - 但不能得到内部循环填充需要插入的增量时间...在这里输了少...任何帮助表示赞赏...

开始日期和来自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> 
+1

当你输出变量时,你看到你认为你应该看到什么吗? – 2014-10-30 16:38:34

+0

什么也看不到 - 尝试在dateadd内部循环中执行step increment - 仍然没有任何内容... – 2014-10-30 16:42:39

+0

#TimeFormat(sadd.topen)# - #TimeFormat(sadd.tclose)# - #sadd.increment#minutes - getting me 06: 00 - 00:00和15分钟 – 2014-10-30 16:44:26

回答

0

我修改你的代码,这样我可以快速测试它。 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的变量。 (针对这种情况的安全性以及针对这种情况的安全性正是为什么确定变量范围是最佳实践的原因)。
  • 对于我的示例数据,我将开始时间设置为13:00(下午1:00),结束时间为17:00(5:00)。您也可以使用“1:00 PM”和“5:00 PM”的正常格式。
  • 我将schDate注释掉了,因为它的用法在这里并不明显。
  • 我添加了一个sadd作用域来模仿你的数据可能是什么样子。在将来,请给出你的数据实际上看起来像什么的样本:)