2013-12-23 35 views
0

我使用下面的代码,以显示与进一步的细节只为即将到来的足球比赛的链接:ColdFusion的MySQL的日期问题比较不同年份

<cfset todaydate = dateformat(now(), 'dd/mm/yy') /> 

<cfif #dateformat(predict.date, "dd/mm/yy")# gte todaydate> LINK </cfif> 

这工作得很好,2013年,以显示今天和即将推出的游戏,但它确实不适用于2014年正在玩的游戏 。

有谁知道这个问题可能是什么?谢谢。

+2

'DATEFORMAT()的##不需要'是** **输出日期。如果你想对日期进行任何处理(比较等),然后使用实际的日期对象(由'createDate()'''parseDateTime()'etc)创建)。另外...如果你想*比较日期,使用'dateCompare()',而不是像'gte','eq'等比较运算符。 –

+0

只是一些有用的建议,并不是真的与你的问题有关。您的cfif声明中不需要磅符号。当我开始使用ColdFusion时,记住何时需要使用磅符号的最佳方式是当我输出表达式/变量或必须使用引号时。例如,否则,您可以执行 fyroc

+0

您的问题已得到解答吗? – baynezy

回答

4

您需要比较日期对象没有日期字符串。因此,使用dateCompare()

<cfif dateCompare(predict.date, now()) GTE 0> LINK </cfif> 
+1

..并仅比较日期,只需添加'd'参数:'' – Leigh

1

baynezy的答案是,做这件事,我的首选方法是

<cfif predict.date GTE now()> LINK </cfif> 

您可以比较2级日期的对象在一起,就像你比较2个号码。语法比使用dateCompare

容易(我)要记住还要注意的是,当你使用cfif

+1

两种方法之间的一个区别是'dateCompare'会隐式转换日期对象的输入值(如果它们不是日期对象)。因此,与'gte'不同,即使您传入date * strings *(如OP中所示),您也可以确保获得日期比较。无论如何,输入值实际上应该是日期对象,但要记住一点点区别。 – Leigh

+0

@Leigh这是一个有效的点,但如果你知道这两个变量都是日期对象,那么这种方式也可以。 –

+0

Leigh的评论可能是真实的,但是Matt的方法在代码可读性方面获得最高分。 DateCompare是我所见过的最不直观的函数之一。 –