代码之家  ›  专栏  ›  技术社区  ›  Maihan Nijat

如何将日期时间从查询转换为字符串,以便在Google可视化图表中使用它?

  •  4
  • Maihan Nijat  · 技术社区  · 6 年前

    我用这种格式得到日期数据 2018-04-01 00:00:00.0 在查询中,并使用以下代码将其作为字符串添加到列中:

    var data = new google.visualization.DataTable();
            data.addColumn('string', 'StartDate');
            data.addColumn('number', 'Deficiency');
            data.addColumn('number', 'Withdraw');
            data.addColumn('number', 'Rain');
            data.addRows([
            <cfoutput query="display_data">
                [
                #dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")#,
                #NumberFormat(DEF, '.9')#,                          
                #NumberFormat(WD,'.9')#,
                #NumberFormat(RAIN,'.9')#,
                ],
             </cfoutput>
                ]); 
    

    但是控制台出错了:

    未捕获(承诺中)错误:类型不匹配。值504.5不匹配 在列索引0中键入字符串

    1 回复  |  直到 6 年前
        1
  •  4
  •   rrk Manish Jangir    6 年前

    试着放 #dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")# 引述。就像 "#dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")#" .

    var data = new google.visualization.DataTable();
        data.addColumn('string', 'StartDate');
        data.addColumn('number', 'Deficiency');
        data.addColumn('number', 'Withdraw');
        data.addColumn('number', 'Rain');
        data.addRows([
        <cfoutput query="display_data">
            [
            '#dateTimeFormat(STARTPERIOD, "yyyy/dd/mm")#',
            #NumberFormat(DEF, '.9')#,                          
            #NumberFormat(WD,'.9')#,
            #NumberFormat(RAIN,'.9')#,
            ],
         </cfoutput>
    ]); 
    

    我的做法如下。

    <cfset dataArray = []>
    <cfloop query="display_data">
      <cfset ArrayAppend(dataArray, [dateTimeFormat(display_data.STARTPERIOD, "yyyy/dd/mm"), NumberFormat(display_data.DEF, '.9'), NumberFormat(display_data.WD,'.9'), NumberFormat(display_data.RAIN,'.9')])>
    </cfloop>
    <script>
      var data = new google.visualization.DataTable();
        data.addColumn('string', 'StartDate');
        data.addColumn('number', 'Deficiency');
        data.addColumn('number', 'Withdraw');
        data.addColumn('number', 'Rain');
        data.addRows(<cfoutput>#serializeJSON(dataArray)#</cfoutput>);
    </script>
    

    对于ColdFusion 2016及以上版本,您可以使用以下命令。

    <cfscript>
      dataArray = [];
      display_data.each(function(value, index){
        dataArray.append([dateTimeFormat(value.STARTPERIOD, "yyyy/dd/mm"), NumberFormat(value.DEF, '.9'), NumberFormat(value.WD,'.9'), NumberFormat(value.RAIN,'.9')]);
      });
    </cfscript>