格式化Google日历图表的日期字符串

时间:2014-11-30 17:08:14

标签: javascript c# .net html5 google-visualization

我使用Newtonsoft.Json API使用以下方法读取了一个Json文件。由于Google日历图表将日期视为新日期(yyyy,mm,dd),因此对日期字符串进行了一些格式化以获得所需的格式。

Json文件样本

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

读取文件的方法

public string CalendarChart()
    {
        Utility utils = new Utility();
        List<Item> data = utils.ReadJsonString("CalendarChart");
        JavaScriptSerializer jss = new JavaScriptSerializer();
        string json = jss.Serialize(data);
        return json;
    }

填充日历数据表

function drawCalendarChart(jsonObj) {
    var months = {
        January: 0,
        February: 1,
        March: 2,
        April: 3,
        May:4,
        June: 5,
        July: 6,
        August: 7,
        September: 8,
        October: 9,
        November: 10,
        December: 11
        };
    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 splitted = dataValues[i].Date.split('-');
       data.addRow([new Date(splitted[0], months.splitted[1], splitted[2]), dataValues[i].Frequencies]);
        }

       var chart = new google.visualization.Calendar(document.getElementById('chart'));

       var options = {
         title: "Calendar Chart",
         height: 350
       };

       chart.draw(data, options);
   }

基本上我将Date字符串拆分为' - '以获得三个分割值。然后我使用数组将月份字转换为月份数。这应该工作正常,但由于某种原因日历没有显示。我在drawCalendarChart()函数中硬编码日期来测试方法,它工作正常。 我无法确定我是不是错了。

0 个答案:

没有答案