Html ColdFusion-时间显示-双结果集-每侧匹配时间

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

这一个让我卡住了

我需要在中间显示2个设施,它们的开放时间是并排的。 让左右两边的人都跟上他们的时间

问题是-时间以15分钟为增量。但有时,左侧或右侧将被预订一小时或不同于15分钟的增量

所以我要把它放在那里

<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')#
      &nbsp;&nbsp;
    </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')#
            &nbsp;&nbsp;
          </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')#
              &nbsp;&nbsp;
            </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>