我有一个关于我在另一个cfloop中的cfloop的问题。下面是我的代码:
<cfloop from="1" to="5" index="k">
<cfloop from="#qry.S#" to="#qry.E#" index="i" step="#CreateTimeSpan(0,0,qry.Leng,0)#">
<cfset TimeEnd = dateAdd("n", Leng, i)>
<tr>
<td>(#k#) #timeFormat(TimeStart, "hh:mm tt")# - #timeFormat(TimeEnd, "hh:mm tt")#</td>
</tr>
<cfset TimeStart = dateAdd("n", qry.Leng, i)>
</cfloop>
</cfloop>上面的代码给出了如下输出:
09:00 AM - 09:15 AM
09:15 AM - 09:30 AM
09:30 AM - 09:45 AM
09:45 AM - 10:00 AM
*10:00 AM - 09:15 AM
09:15 AM - 09:30 AM
09:30 AM - 09:45 AM
09:45 AM - 10:00 AM
*10:00 AM - 09:15 AM
09:15 AM - 09:30 AM
09:30 AM - 09:45 AM
09:45 AM - 10:00 AM
*10:00 AM - 09:15 AM
09:15 AM - 09:30 AM
09:30 AM - 09:45 AM
09:45 AM - 10:00 AM
*10:00 AM - 09:15 AM
09:15 AM - 09:30 AM
09:30 AM - 09:45 AM
09:45 AM - 10:00 AM正如您所看到的,我将星号放在代码给我错误值的行旁。由于某些原因,我在第一次循环后的开始时间是从结束时间开始的。谁能告诉我如何解决这个问题?
发布于 2015-12-10 00:11:01
不能同时使用"i“作为外部循环和内部循环的索引。对内部循环使用其他东西(x)。例如:
<cfloop from="1" to="5" index="i">
<cfloop from="#qry.S#" to="#qry.E#" index="x" step="#CreateTimeSpan(0,0,qry.Leng,0)#">
<cfset TimeEnd = dateAdd("n", Leng, i)>
<tr>
<td> #timeFormat(TimeStart, "hh:mm tt")# - #timeFormat(TimeEnd, "hh:mm tt")#</td>
</tr>
<cfset TimeStart = dateAdd("n", qry.Leng, i)>
</cfloop>
</cfloop>我不确定这里的意图,所以您可能需要在内部循环中将一些您的i替换为x,这取决于您想要什么(例如start-end)。
*
也许我看到了你的问题(不确定),但根据你的评论,你的问题将是你已经重置了timestart变量。您需要在第一个循环开始后执行此操作。
<cfloop> outer loop
<Cfset timestart = *starting value*>
<cfloop> inner looop否则,您的timestart将是您上次为其设置的cfset --在内部循环中。
https://stackoverflow.com/questions/34183160
复制相似问题