Javascript 将日期字符串格式化为适合Google calendar作为参数
我有一个字符串,表示2014-7-2014之类的数据。我正在用Javascript格式化这个日期,以便可以将它用作Google日历图表的参数 例如 然后我使用键值数组来获取月份数。 然后我用..填充Google日历数据表Javascript 将日期字符串格式化为适合Google calendar作为参数,javascript,date,google-visualization,google-calendar-api,Javascript,Date,Google Visualization,Google Calendar Api,我有一个字符串,表示2014-7-2014之类的数据。我正在用Javascript格式化这个日期,以便可以将它用作Google日历图表的参数 例如 然后我使用键值数组来获取月份数。 然后我用..填充Google日历数据表 data.addRow([new Date(ParseInt("splitted[0]"),months.splitted[1], ParseInt("splitted[2]")), dataValues[i].Value]); 我使用ParseInt()将字符串转换为数字,
data.addRow([new Date(ParseInt("splitted[0]"),months.splitted[1], ParseInt("splitted[2]")), dataValues[i].Value]);
我使用ParseInt()将字符串转换为数字,因为新日期(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 });
}
保持简单,这应该可以:
data.addRow([ new Date(dataValues[i].Date), dataValues[i].Frequencies ]);
更新
它对我起作用了,这里有一个工作的代码。下面是如何将字符串日期值转换为数字日期
var date = new Date("12-January-2014");
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;
现在,您可以根据需要在数据函数中使用此变量
这是
希望对你有帮助 你能再解释一下你想显示什么样的数据吗?因为这篇文章让人困惑,你说你需要一个谷歌日历参数,但是你提供的代码是用于统计和调查的
googledatatables
。。。你也可以提供你的json数据,以便更方便地帮助你。我有一个json文件,像这样[{“日期”:“2014-1-15”,“频率”:11},{“日期”:“2014-1-8”,“频率”:22}]
我想用谷歌日历图表来显示这些信息。我无法手动添加这些行条目。我需要使用循环来填充行。我将此方法用于其他图表,如饼图等,效果良好。问题在于日期,因为它不是addRow函数所要求的正确格式,无法运行。请尝试我的更新答案并给出一些反馈。我将在20:00后尝试,因为我在工作,并更新每个人。谢谢,我试过了。图表正在绘制中,至少是标题,但日期给出了一个NaN,NaN。我知道,因为我还在日历图表下显示数据表。这是我正在使用的样本数据[{“日期”:“2014-1-15”,“频率”:11},{“日期”:“2014-1-8”,“频率”:22},{“日期”:“2014-1-10”,“频率”:11}]@user2307236检查更新的答案,在提供的小提琴中解决了您的问题。希望有帮助!问题是日期是从文件/date(12712000000)/
以这种格式返回的。我用几行代码解决了这个问题<代码>for(var i=0;ivar date=新日期(“2014年1月12日”)
已经是一个有效的javascript日期,因此无需执行下面的所有操作。@Kutyel是的,您是对的,但用户希望将其转换为“数字”有疑问的是“我使用ParseInt()将字符串转换为数字,因为新日期(yyy,mm,dd)只将整数作为参数”
data.addRow([ new Date(dataValues[i].Date), dataValues[i].Frequencies ]);
var date = new Date("12-January-2014");
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;
var vt= new Date(year, month, day);
alert(vt);