(ColdFusion)比较两个日期,使用结果确定显示的内容

(ColdFusion)比较两个日期,使用结果确定显示的内容,coldfusion,Coldfusion,我在一个客户的网站上工作,他需要将优惠券到期日期更改为红色,如果离到期日期不到两周。否则它们将是黑色的 网站本身不是我做的。我刚从这里开始,他们想让我学习ColdFusion。所以我一直在跌跌撞撞地通过它 我想也许通过使用或我可以得到我想要的。但是,当我比较任何一个结果时,都会得到乱码文本。它显示一长串51551,对于客户列表上的每个后续优惠券项目,该字符串逐渐变小 优惠券日期本身(即结束日期)是从Microsoft SQL数据库调用的。它的格式是使用Dateformat:#Dateformat

我在一个客户的网站上工作,他需要将优惠券到期日期更改为红色,如果离到期日期不到两周。否则它们将是黑色的

网站本身不是我做的。我刚从这里开始,他们想让我学习ColdFusion。所以我一直在跌跌撞撞地通过它

我想也许通过使用或我可以得到我想要的。但是,当我
比较任何一个结果时,都会得到乱码文本。它显示一长串
51551
,对于客户列表上的每个后续优惠券项目,该字符串逐渐变小

优惠券日期本身(即结束日期)是从Microsoft SQL数据库调用的。它的格式是使用Dateformat:
#Dateformat(结束日期,“m/d/yyyy”)#

我尝试将其与
Now()
进行比较,以便动态确定到期日期是否应为红色。我还尝试了格式化
Now()
,得到了相同的结果


这里有没有经验丰富的程序员能带领我走上正确的道路

Datediff是您想要的。您是否在日期差异中使用了正确的日期部分?您可以使用“ww”表示数周,或使用“d”表示数天,我在下面的示例中使用了数天

<cfset CouponDate = createDate( 2012, 05, 29 ) />
<cfif DateDiff( "d", CouponDate, Now() ) GTE 14>
    <cfset Expired = False />
<cfelse>
    <cfset Expired = True />
</cfif>

显然,您不需要设置变量或任何东西,这只是一些示例代码,可以让您的想法发挥作用。:)


//设置7天前的第一个测试日期
date1=dateAdd('d',-7,now());
//设置14天前的第二个日期
date2=dateAdd('d',-14,now());
//比较日期1
writeOutput(dateDiff('d',date1,now())和'
'); //比较日期2 writeOutput(dateDiff('d',date2,now())和'
'); //演示使用 if(dateDiff('d',date2,now())gte 14){ 写输出(“红色”); }
这对我很有用:

<cfset dtdiff = query.expiry_date - Now() />
<cfif Round(dtdiff) LEQ 14>
    Red
<cfelse>
    Black
</cfif>

红色
黑色
如果您不想使用14天的时差,您可以使用


Fix(dtdiff)
而不是
Round(dtdiff)

是的,他说的,一字不差。)我认为
过期的
值是反向的。它们是!修理。。。我把它调大了,所以CouponDate是第一个,然后是现在()并且没有交换它们。接得好。人力资源部,我正在研究这个解决方案。这太棒了!很高兴知道我离答案不远了。我喜欢stackoverflow。请小心,因为Microsoft SQL Server中的datediff和Adobe ColdFusion有很多相似之处。我在比较mssql时间戳和ColdFusion Now()时遇到了问题。有了这个,我解决了这个问题。我相信Stackoverflow期望得到不同的答案。。这肯定会帮助其他人。什么问题?(如果你真的是指
timestamp
这与date/datetime完全不同。)当谈到日期时,最好不要使用自己的逻辑,除非有很好的理由。mssql timestamp和now之间的差异问题。不管怎样,stackoverflow鼓励不同的答案。
<cfset dtdiff = query.expiry_date - Now() />
<cfif Round(dtdiff) LEQ 14>
    Red
<cfelse>
    Black
</cfif>