我在使用CreateDate()
函数时遇到了一些问题,它只是出错了,我不明白为什么!
我正在运行此查询以获取新闻报道中的所有日期,以便我可以每月创建一个新闻档案。
<cfquery name="selectNews" datasource="#Request.dsn#">
SELECT Month(NewsDate) AS theCount
FROM news
GROUP BY Month(NewsDate)
</cfquery>
然后当我输出它时,我试图以下面的格式输出它
所以我使用以下代码尝试输出此列表
<ul>
<cfloop query="selectNews">
<cfoutput>
<cfset theDay = DateFormat(Now(), 'dd')>
<cfset theMon = theCount>
<cfset theYear = DateFormat(Now(), 'yyyy')>
<li>#CreateDate(theYear, theMon, theDay)#</li>
</cfoutput>
</cfloop>
</ul>
它适用于第一个项目,它将输出Aug 2012
,但它会出错,说这个
Error Occurred While Processing Request
MONTH
对我来说,至少对我来说没用!
答案 0 :(得分:1)
我的猜测是SQL Month()函数在1月份返回0,而CreateDate则在1月份返回1。
修改强>
<ul>
<cfloop query="selectNews">
<cfset theDay = Day(Now())>
<cfset theMon = #theCount#>
<cfset theYear = Year(Now())>
<cfoutput><li>#DateFormat(CreateDate(theYear, theMon, theDay), "mmm yyyy")#</li></cfoutput>
</cfloop>
</ul>
修改强>
这似乎有效但只有奇数月份
<cfset months = [1,3,5] />
<ul>
<cfloop array="#months#" index="currentmonth">
<cfoutput><li>#DateFormat(CreateDate(Year(Now()), currentmonth, Day(Now())), "mmm yyyy")#</li></cfoutput>
</cfloop>
</ul>
答案 1 :(得分:0)
这是我的白痴。我正在使用DateFormat(Now(), 'dd')
,这是一个巨大的愚蠢错误,因为九月只有30天。它正在运行CreateDate(2012, 09, 31)
,显然无效!