javascript - 将日期字符串格式化为适合 Google 日历作为参数

标签 javascript date google-visualization google-calendar-api

我有一个字符串,表示 2014-July-2014 等数据。我正在 javacript 中格式化此日期,以便我可以将其用作 Google 日历图表的参数。

例如

var x = "2014-July-12";

var splitted = x.spilt('-');
// to get "2014" at index [0], "July" at index [1] and "12" at index [2].

然后,我使用键值数组来获取月份数。 然后我用以下内容填充 Google 日历数据表:

data.addRow([new Date(ParseInt("splitted[0]"),months.splitted[1], ParseInt("splitted[2]")), dataValues[i].Value]);

我使用 ParseInt() 从字符串转换为数字,因为 new Date(yyy,mm,dd) 仅采用整数作为参数。 我无法让这个日历正常工作。我在网上搜索了很多,但找不到如何从 json 文件填充 Google 日历日历图表的好示例。

你们能看一下并指导我如何完成这项任务并解释一下我是否错了。 提前致谢。

绘制日历图表功能

function drawCalendarChart(jsonObj) {

    var dataValues = eval(jsonObj)
       var data = new google.visualization.DataTable(dataValues);
       data.addColumn({ type: 'date', id: 'Date' });
       data.addColumn({ type: 'number', id: 'Reports' });

       for (var i = 0; i < dataValues.length; i++) {

           var date = new Date(dataValues[i].Date);
           var year = date.getFullYear(), month = (date.getMonth() + 1), day = date.getDate();
           if (month < 10) month = "0" + month;
           if (day < 10) day = "0" + day;
           var Formatted = "" + year + "," + month + "," + day;
           //           data.addRow([new Date(dataValues[i].Date), dataValues[i].Frequencies]);
           data.addRow([new Date(Formatted), dataValues[i].Frequencies]);
       }
       var options = {
         title: "Calendar Chart",
         height: 350
       };
       var chart = new google.visualization.Calendar(document.getElementById('chart'));

       chart.draw(data, options);
       var table = new google.visualization.Table(document.getElementById('table'));
       table.draw(data, { showRowNumber: true });
   }

我添加了用于绘制图表的函数。数据给出 NaN,NaN 错误。频率正在获得正确的值。所以肯定和日期格式有关。 这是我正在使用的测试字符串。

[
    {
        "Date": "2014-January-15",
        "Frequencies": 11
    },
    {
        "Date": "2014-January-8",
        "Frequencies": 22
    },
    {
        "Date": "2014-January-10",
        "Frequencies": 11
    }
]

最佳答案

保持简单,这应该有效:

data.addRow([ new Date(dataValues[i].Date), dataValues[i].Frequencies ]);

更新

它对我有用,这里有一个可用的 fiddle 与代码。

关于javascript - 将日期字符串格式化为适合 Google 日历作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27215853/

相关文章:

javascript - 如何设置注释文本或值的方向

javascript - Jquery 忽略编码 ISO-8859-1

javascript - jQuery bootstrap 多重崩溃不起作用

algorithm - 查找 "Same day of week last year"的与语言无关的算法是什么

python - 如何将日期设置为该月的第一个日期?

Mysql - 按大于或小于当前时间的日期对记录进行分组 now() mysql

javascript - 谷歌绘制没有数据的饼图

javascript - 将数组格式化为 JSON 以输入到 Google Charts API?

javascript - 如何在事先不知道 key 的情况下检索所有 localStorage 项目?

javascript - 复选框垂直对齐错误 : label is down and the check box is up