CFIF结构拒绝工作.始终使用第一个声明

Jak*_*ndy 1 coldfusion

对不起,上面的内容有点模糊,很难说.我在我的代码中有一个简单的CFIF语句,将dateup设置为"st","nd","rd"或"th".但是,当代码运行时,它只是将dateup设置为" st"而没有别的.

代码如下.

     #DATEFORMAT(date, "dddd")# the #DATEFORMAT(date, "dd")#
                        <cfset dateday = #DATEFORMAT(date,"dd")#>
                        <cfif dateday eq 01 OR 21 OR 31>
                            <cfset datesup = "st">
                        <cfelseif dateday IS 01 OR 11>
                            <cfset datesup = "nd">  
                        <cfelseif dateday IS 03 OR 23>
                            <cfset datesup = "rd">      
                        <cfelse>
                            <cfset daatesup = "th">     
                        </cfif>
                        #datesup# of #DATEFORMAT(date, "mmmm, yyyy")#
Run Code Online (Sandbox Code Playgroud)

小智 6

你做不到......

cfif日期01或21或31

它应该是...

cfif dateay eq 01 OR dateay eq 21 OR dateday eq 31

所有数字都被评估为真,因此只需执行OR 21与执行OR true相同.

此外,ColdFusion提供了一个Day(now())函数,您可以使用而不是dateformat.