Html ColdFusion-时间显示-双结果集-每侧匹配时间
这一个让我卡住了 我需要在中间显示2个设施,它们的开放时间是并排的。 让左右两边的人都跟上他们的时间 问题是-时间以15分钟为增量。但有时,左侧或右侧将被预订一小时或不同于15分钟的增量 所以我要把它放在那里Html ColdFusion-时间显示-双结果集-每侧匹配时间,html,datetime,coldfusion,coldfusion-9,Html,Datetime,Coldfusion,Coldfusion 9,这一个让我卡住了 我需要在中间显示2个设施,它们的开放时间是并排的。 让左右两边的人都跟上他们的时间 问题是-时间以15分钟为增量。但有时,左侧或右侧将被预订一小时或不同于15分钟的增量 所以我要把它放在那里 <CFSET pdate = #CREATEODBCDATE(todaydate)#> <CFSET startdate = #CREATEODBCDATE(todaydate)#> <CFSET enddate = #CREATEODBCDATE(today
<CFSET pdate = #CREATEODBCDATE(todaydate)#>
<CFSET startdate = #CREATEODBCDATE(todaydate)#>
<CFSET enddate = #CREATEODBCDATE(todaydate)#>
<table>
<tr>
<td valign=top>
<cfinclude template="_left.cfm">
</td>
<td valign=top>
<cfinclude template="_middle.cfm">
</td>
<td valign=top>
<cfinclude template="_right.cfm">
</td>
</tr>
</table>
_左和右基本上与SAIDLT和SAIDRT相同
<cfquery name="schlt" datasource="#ds#">
select * from masterschedule
where said = '#saidlt#' or where said = '#saidrt#'
and schdate = #createODBCDate(pdate)#
order by schstart
</cfquery>
<table cellpadding=20 cellspacing=0 align=center>
<cfoutput query="schlt">
or query="schrt">
<cfquery name="ug" datasource="#ds#">
select * from users
where uid = '#uid#'
</cfquery>
<tr bgcolor=<cfif (sch.currentRow MOD 2 EQ 0)>e8e8e8
<cfelse>
f7f7f7</cfif>>
<td class=verd10 valign=middle>
#Timeformat(schstart, 'H:mm TT')#
<br>#Timeformat(schend, 'H:mm TT')#
</td>
<td class=verd11 valign=middle align=center>#ug.username#</td>
</tr>
</cfoutput>
</table>
_中间的
<cfquery name="sadd" datasource="#ds#">
select * from subarena
where said = '#said#'
</cfquery>
<cfoutput>
<cfset hrdiv = 60 / #sadd.increment#>
<cfset hrsdiff1 = (DateFormat( todaydate, "yyyy-mm-dd" ) & " " & "#TimeFormat(sadd.topen)#") />
<cfif sadd.tclose lte sadd.topen>
<cfset hrsdiff2 = (DateFormat( todaydate, "yyyy-mm-dd" ) & " " & "#TimeFormat(sadd.tclose)#") />
<cfset hrsdiff2 = #DateAdd('d', 1, '#hrsdiff2#')#>
<cfelse>
<cfset hrsdiff2 = (DateFormat( todaydate, "yyyy-mm-dd" ) & " " & "#TimeFormat(sadd.tclose)#") />
</cfif>
<cfset loopreps = (#Abs(DateDiff("h", hrsdiff1, hrsdiff2))# * hrdiv) - 1>
</cfoutput>
<cfset schdate = '#startdate#'>
<cfloop index="dtToday" from="#StartDate#" to="#EndDate#">
<cfoutput>
<cfset usedate="#CreateODBCDate(dttoday)#">
<cfset stime = (DateFormat( usedate, "yyyy-mm-dd" ) & " " & "#TimeFormat(sadd.topen)#") />
<cfoutput>
<table cellpadding=20 cellspacing=0 align=center>
<cfset etime = #DateAdd('n', sadd.increment, '#stime#')#>
<tr bgcolor=e8e8e8>
<td class=verd10 valign=middle>
#Timeformat(stime, 'H:mm TT')#
<br>#Timeformat(etime, 'H:mm TT')#
</td>
</tr>
</table>
</cfoutput>
<cfloop index="incr" from="1" to="#loopreps#">
<cfoutput>
<cfset stime = #DateAdd('n', sadd.increment, '#stime#')#>
<cfset etime = #DateAdd('n', sadd.increment, '#stime#')#>
<table cellpadding=20 cellspacing=0 align=center>
<tr bgcolor=e8e8e8>
<td class=verd10 valign=middle>
#Timeformat(stime, 'H:mm TT')#
<br>#Timeformat(etime, 'H:mm TT')#
</td>
</tr>
</table>
</cfoutput>
</cfloop>
<cfset schdate = #DateAdd('d', 1, '#schdate#')#>
</cfoutput>
</cfloop>
你没有提供太多的细节,所以这真的超出了网站的范围 此外,我认为这段代码甚至不起作用。在查询中,您有一个位置
where said = '#saidlt#' or where said = '#saidrt#'
and schdate = #createODBCDate(pdate)#
正确的设置方法很可能是
where (said = <cfqueryparam value="#said#" type="XXX"> or said = <cfqueryparam value="#said#" type="XXX">)
and schdate = <cfqueryparam value="#createODBCDate(pdate)#" type="cf_sql_timestamp">
因此,如果一个设施被安排在9:30-9:45,10-10:30和11-12,那么另一个设施看起来就像这样
<div style="color: green; height: 15px">8:00</div>
<div style="color: green; height: 15px">8:15</div>
<div style="color: green; height: 15px">8:30</div>
<div style="color: green; height: 15px">8:45</div>
<div style="color: green; height: 15px">9:00</div>
<div style="color: green; height: 15px">9:15</div>
<div style="color: red; height: 15px">9:30</div>
<div style="color: green; height: 15px">9:45</div>
<div style="color: red; height: 30px">10:00</div> --- note the height of 30px, because it covers the gap
<div style="color: green; height: 15px">10:30</div> --- note that 10:15 is missing
<div style="color: green; height: 15px">10:45</div>
<div style="color: green; height: 60px">11:00</div> --- note the 60px height
<div style="color: green; height: 15px">12:00</div>
....
然而,如果另一方整天都是自由的,他们会列出所有的时间,事情会按照你的意愿平衡,如果他们不自由,你遵循与这里相同的逻辑,你就会达到你想要的结果
注意,表格已经过时了,但是您可以使用表格、行间距和一些数学来实现同样的功能
此外,您应该避免使用内联样式,正如我在示例中所做的,但这只是一个简单的示例
正确答案
和你的想法配合得很好。下面是一些代码
中间结果全部为20px
Timeformatstime,“H:mm TT”
相应地调整左右结果
<cfset nb = #DateDiff("n",schstart,actend)#>
<cfset ht = nb / 15 >
<cfset newht = ht * 20>
<cfif (sch.currentRow MOD 2 EQ 0)><cfset bg = "e1e1e1"><cfelse><cfset bg = "d7d7d7"></cfif>
<cfif ug.username is "available"><cfset cl = "green"><cfelse><cfset cl = "000000"></cfif>
<div style="position: relative; background-color: #bg#; font-family: Verdana; font-size: 10pt; color: #cl#; height: #newht#px">
<cfif ug.username is "available">
<a href="_twin_book.cfm?mid=#masterid#">#ug.username#</a>
<cfelse>#ug.username#</cfif>
<cfif len(admnote)><span class=code8><br>#admnote#</span></cfif>
<cfif actend gt schend>
<div style="position: absolute; bottom: 0; width: 100%; height: 12px; background-color: pink;">
</cfif>
</div>
开始时间需要匹配。因此,基本上需要1小时的时间来跨越15分钟的增量。两点:1。在查询中使用。2.您不需要在中使用周围的变量,例如,可以这样编写上面代码的结果有什么问题?以上不是一个自包含的示例,因此没有人可以在不进行大量设置工作的情况下运行它。大多数人都很忙,没有这样的时间,所以他们会跳过它。当发布一个完全独立的示例是不可行的时,请包含其他帮助澄清问题的内容,例如:屏幕截图、数据样本和/或所需结果的模型。抱歉-如果我添加了或在编码之外。。。有了*lt和*rt-它会提醒那些看起来是相同代码的人-只有一个是左的,一个是右的,,,
<cfset nb = #DateDiff("n",schstart,actend)#>
<cfset ht = nb / 15 >
<cfset newht = ht * 20>
<cfif (sch.currentRow MOD 2 EQ 0)><cfset bg = "e1e1e1"><cfelse><cfset bg = "d7d7d7"></cfif>
<cfif ug.username is "available"><cfset cl = "green"><cfelse><cfset cl = "000000"></cfif>
<div style="position: relative; background-color: #bg#; font-family: Verdana; font-size: 10pt; color: #cl#; height: #newht#px">
<cfif ug.username is "available">
<a href="_twin_book.cfm?mid=#masterid#">#ug.username#</a>
<cfelse>#ug.username#</cfif>
<cfif len(admnote)><span class=code8><br>#admnote#</span></cfif>
<cfif actend gt schend>
<div style="position: absolute; bottom: 0; width: 100%; height: 12px; background-color: pink;">
</cfif>
</div>