2

関数に問題があります。エラーが発生してCreateDate()いるだけで、理由がわかりません。

私はこのクエリを実行してニュース記事からすべての日付を取得し、毎月ニュースアーカイブを作成できるようにしています。

<cfquery name="selectNews" datasource="#Request.dsn#">
    SELECT Month(NewsDate) AS theCount
    FROM news
    GROUP BY Month(NewsDate)
</cfquery>

それで出力すると次のような形で出力しようとしています

  • 2012年8月
  • 2012年9月
  • 2012年10月

したがって、このリストを出力するために次のコードを使用しています

<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

少なくとも、私にとっては役に立たない!

4

2 に答える 2

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>
于 2012-10-31T11:55:34.843 に答える
0

これは私がばかだった。DateFormat(Now(), 'dd')9月は30日しかないので、とんでもないばかげた間違いを使っていました。それは実行されていましたがCreateDate(2012, 09, 31)、明らかに機能しません!

于 2012-10-31T12:23:22.340 に答える