【问题标题】:How to get all dates listed in array?如何获取数组中列出的所有日期?
【发布时间】:2016-01-21 20:08:16
【问题描述】:

我正在尝试将从开始到结束日期的所有日期输出到数组。一旦我得到数组中的所有日期,我就创建了一个循环遍历数组并添加类名的函数。这是我创建数组的代码:

<cfoutput query="qryOne">
    <cfloop from="#PickDateTime#" to="#DropDateTime#" index="i" step="#CreateTimeSpan(1,0,0,0)#">
        dateArray[#currentrow#] = new Array("#UserID#","#dateformat(i,'mmddyyyy')#");
    </cfloop>
</cfoutput>

这是我的 JavaScript 函数:

var dateArray = new Array();

function getDate(){
    for (var i=1; i < dateArray.length; i++){
        result = document.getElementById(dateArray[i][1])
        result.className = 'booked'
    }
}

所以我现在遇到的问题是代码只给了我结束日期。有时我有 开始和结束时间发生在同一日期,但有时我们可以有日期范围。以下是几个例子:

Start           End
01/21/2015    01/21/2015
08:00 AM      12:30 PM
01/23/2015    01/24/2015
09:00 AM      03:00 PM
01/31/2015    02/05/2015
11:00 AM      10:00 AM

所以我当前的代码只给了我结束日期,我需要获取所有日期。如果有人在上面的代码中看到我做错了什么,请告诉我。谢谢。

【问题讨论】:

  • 你只是在 JS 数组中存储一个日期,见:dateArray[#currentrow#] = new Array("#UserID#","#dateformat(i,'mmddyyyy')#");
  • 需要改进您的查询和循环以提供更多数据。似乎您只是在查询中创建其中一种日期类型的数组
  • 要在数组中包含更多数据还是?
  • 是的……当然。在 json 中拍摄一些东西,例如 [{"start":"...", "end":"..","id":".."},{"start":"...", "end":"..","id":".."}]
  • 在您的 ColdFusion 代码中,您正在循环内创建新数组。这是你的意图吗?

标签: javascript arrays date coldfusion


【解决方案1】:

正如Alexcharlietfl 建议的那样,您的数组创建逻辑似乎是错误的。我假设您正在尝试存储每个用户的日期范围。在这种情况下,您应该使用结构而不是数组来存储每个用户的日期数组。

除此之外,我建议先创建日期数组的 ColdFusion 结构,然后使用 ColdFusion 的 SerializeJSON() 函数将其序列化为 JSON。 像这样:

<cfset dateStruct = structNew() />
<cfoutput query="qryOne">
    <cfset dateStruct[userID] = arrayNew(1) />
    <cfloop from="#PickDateTime#" to="#DropDateTime#" index="i" step="#CreateTimeSpan(1,0,0,0)#">
        <cfset arrayAppend(dateStruct[userID],"#dateformat(i,'mmddyyyy')#")/>
    </cfloop>
</cfoutput>

然后您可以使用以下函数将 JSON 格式的结构保存在 JavaScript 变量中:

<script>
     var jsonString =  '<cfoutput>#SerializeJSON(dateStruct)#</cfoutput>';
     var JSONObject = JSON.parse(jsonString);
</script>

一旦您在 JavaScript 中拥有 JSON 对象,您就可以使用它做任何您需要的事情。 如果您想遍历 JSON 对象,请阅读以下内容: iterating through json object javascript

【讨论】:

  • 我尝试在上面的函数中实现 JSONObject,但无法开始工作。我使用 for 循环遍历 JSON,然后获取密钥并分配类名。如何将值与键一起获取?
  • @user3023588 - 描述不明确 ;-) 请不要描述您使用的代码,而是发布它。如果可能,请发布一个独立示例,其他人可以在您的环境之外运行。一般来说,别人越容易测试代码,你就会越快得到答案。
  • 仍在努力在这里创建工作示例,我将尝试解决此问题。感谢您的建议。
  • 如何扩展我的 dateStruct 中的元素数量,在已经存在的日期从查询中添加更多元素?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多