Coldfusion在数组中查找日期

时间:2016-09-08 01:33:27

标签: arrays coldfusion coldfusion-9

需要帮助在数组中查找特定日期。

我有一个从JSON文件填充的数组。想要一个表单输入日期然后返回数据,如果它在数组中。

这是我到目前为止所尝试过的。

<!---Form and submit button to enter date--->
<p>
    <cfform name="pickdate" id="pickdate" >
        <cfinput required="yes" name="datepicker" type="datefield" id="datepicker" validate="USDATE">
        <cfinput type="submit" name="insertpbnum" value="Enter" id="submit">
    </cfform>
</p>

<br>
<br>
<!---Get lotto numbers from JSON file--->
<cfhttp url="https://data.ny.gov/api/views/d6yy-54nr/rows.json?accessType=DOWNLOAD" method="get" result="httpResp" timeout="120">
    <cfhttpparam type="header" name="Content-Type" value="application/json" />
</cfhttp>
<cfset pbdata=deserializeJSON(httpResp.filecontent)>
<cfoutput>
    <!---loop thru JSON file to grab lotto numbers and dates--->
    <cfloop from="1" to="#arrayLen(pbdata.data)#" index="i">
        <!---change xml date-time format to Coldfusion formate--->
        #arrayFind(datetimeformat(Parsedatetime(pbdata.data[i][9]),"MM-DD-YYYY","datepicker"))#
        <!---#i#: #Parsedatetime(pbdata.data[i][9])#  : #pbdata.data[i][10]#---><br />
    </cfloop>

</cfoutput>

我正是以正确的方式来做这件事。或者将数组放入数据库更好?

由于

1 个答案:

答案 0 :(得分:-1)

这是一种不同的方法,但希望能够完成您的尝试。此解决方案将数据抛出到查询中,然后执行查询查询(QOQ)以检查日期。

<cfhttp url="https://data.ny.gov/api/views/d6yy-54nr/rows.json?accessType=DOWNLOAD" method="get" result="httpResp" timeout="120">
    <cfhttpparam type="header" name="Content-Type" value="application/json" />
</cfhttp>
<cfset pbdata=deserializeJSON(httpResp.filecontent)>

<!--- Get list of column names --->
<cfset columnList = "" />
<cfloop from="1" to="11" index="i">
    <cfset columnList = listAppend(columnList, replace(pbdata.meta.view.columns[i].name, " ", "", "All")) />
</cfloop>

<!--- Populate data into query --->
<cfset qryData = queryNew(columnList) />
<cfset dataRowCount = arrayLen(pbdata.data) />
<cfset queryAddRow(qryData, dataRowCount) />
<cfloop from="1" to="#dataRowCount#" index="i">
    <cfloop from="1" to="#arrayLen(pbdata.data[i])#" index="j">
        <cfif j EQ 11 AND pbdata.data[i][j] EQ "null">
            <!--- default multiplier field to 0 if null --->
            <cfset querySetCell(qryData, listGetAt(columnList, j), 0, i) />
        <cfelse>
            <cfset querySetCell(qryData, listGetAt(columnList, j), pbdata.data[i][j], i) />
        </cfif>
    </cfloop>
</cfloop>

<!--- Query the recordset --->
<cfquery name="rs" dbtype="query">
    SELECT  *
    FROM    qryData
    WHERE   DrawDate = '#dateFormat("5/26/2010", "YYYY-MM-DD")#T00:00:00'
</cfquery>

<cfdump var="#rs#" />