Coldfusion CFIF结构拒绝工作。总是使用第一个语句

Coldfusion CFIF结构拒绝工作。总是使用第一个语句,coldfusion,Coldfusion,对不起,上面的内容有点模糊,很难说清楚。我的代码中有一个简单的CFIF语句,可以将datesup设置为“st”、“nd”、“rd”或“th”,但在运行代码时,它只将datesup设置为“st”,而不设置其他内容 代码如下 #DATEFORMAT(date, "dddd")# the #DATEFORMAT(date, "dd")# <cfset dateday = #DATEFORMAT(date,"dd")#>

对不起,上面的内容有点模糊,很难说清楚。我的代码中有一个简单的CFIF语句,可以将datesup设置为“st”、“nd”、“rd”或“th”,但在运行代码时,它只将datesup设置为“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")#
#日期格式(日期,“dddd”)#日期格式(日期,“dd”)#
#日期格式(日期,“mm,yyyy”)#

OR 21的计算结果为真。您需要将其更改为->

您也可以使用


“th”的变量应该是datesup,这里有一个额外的a。

OR 21的计算结果为true。您需要将其更改为->

您也可以使用

“th”的变量应该是datesup,这里有一个额外的a。

您的表达式表示:

如果(dateday==01)或(21)或(31)

由于21和31转换为true,因此条件为true

你需要

如果是dateday eq 01或dateday eq 21或dateday eq 31

如果listFind('01,21,31',dateday)

您的表达式表示:

如果(dateday==01)或(21)或(31)

由于21和31转换为true,因此条件为true

你需要

如果是dateday eq 01或dateday eq 21或dateday eq 31

如果listFind('01,21,31',dateday)

您不能执行

cfif日期eq 01或21或31

应该是

cfif日期日等式01或日期日等式21或日期日等式31

所有的数字都被评估为真,因此只执行或21与执行或真相同

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

您不能

cfif日期eq 01或21或31

应该是

cfif日期日等式01或日期日等式21或日期日等式31

所有的数字都被评估为真,因此只执行或21与执行或真相同


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

感谢您提供的heads up ref daatesup,以及为什么它的计算结果为true!非常感谢。感谢裁判daatesup的提醒,以及为什么它的评价是正确的!非常感谢。感谢listFind的想法!谢谢你的listFind想法!谢谢你的回答,为什么它的评估结果是真的!谢谢你的回答,为什么它的评估结果是真的!