对不起,上面的内容有点模糊,很难说。我在我的代码中有一个简单的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")#
答案 0 :(得分:6)
你做不到......
cfif dateay eq 01 OR 21 OR 31
应该是......
cfif dateay eq 01 OR dateay eq 21 OR dateay eq 31
所有数字都被评估为真,所以只做OR 21就像做OR一样。
此外,ColdFusion提供了一个Day(now())函数,您可以使用它而不是dateformat。
答案 1 :(得分:3)
你的表达意味着:
if(dateday == 01)或(21)或(31)
由于21和31转换为true,条件为真。
你需要
如果日期为01或日期为21或日期为eq 31
或者
如果listFind('01,21,31',dateay)
答案 2 :(得分:1)
OR 21正在评估为真。您需要将其更改为 - &gt; <cfif dateday eq 01 OR dateday eq 21 or dateday eq 31>
您也可以使用<cfif right( dateday , 1 ) eq 1>
“th”的变量应该是日期,你还有一个额外的。