我有一个奇怪的问题,我很困惑,但我相信在这里有人会知道我做错了什么。我的所有日期都显示不正确(即6月显示7月,7月显示8月)
我的代码在这里:
// Load the Visualization API and the piechart package.
google.load('visualization', '1.0', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawVisualization);
// Callback that creates and populates a data table,
// instantiates the pie chart, passes in the data and
// draws it.
function drawVisualization() {
var chartTable = new google.visualization.DataTable();
chartTable.addColumn('date', 'Date');
chartTable.addColumn('number', 'Sell');
chartTable.addColumn('number', 'GP');
chartTable.addRows(6);
chartTable.setValue(0, 0, new Date( 2011, 06, 22 ));
chartTable.setValue(0, 1, 1316.90);
chartTable.setValue(0, 2, 456.05);
chartTable.setValue(1, 0, new Date( 2011, 06, 21 ));
chartTable.setValue(1, 1, 1793.70);
chartTable.setValue(1, 2, 531.10);
chartTable.setValue(2, 0, new Date( 2011, 06, 20 ));
chartTable.setValue(2, 1, 13559.25);
chartTable.setValue(2, 2, 1337.75);
chartTable.setValue(3, 0, new Date( 2011, 06, 17 ));
chartTable.setValue(3, 1, 3034.15);
chartTable.setValue(3, 2, 892.30);
chartTable.setValue(4, 0, new Date( 2011, 06, 16 ));
chartTable.setValue(4, 1, 568.45);
chartTable.setValue(4, 2, 175.05);
chartTable.setValue(5, 0, new Date( 2011, 06, 15 ));
chartTable.setValue(5, 1, 7203.85);
chartTable.setValue(5, 2, 1343.45);
var date_formatter = new google.visualization.DateFormat({pattern: 'EEE, MMM-d'});
date_formatter.format(chartTable, 0); // Apply format to first column of table
var currency_formatter = new google.visualization.NumberFormat({prefix: '$'});
currency_formatter.format(chartTable, 1); // Apply format to second column of chart
currency_formatter.format(chartTable, 2); // Apply format to third column of chart
// Create and draw the visualization.
chart = new google.visualization.LineChart(document.getElementById('chart'));
chart.draw(chartTable, {width: 900, height: 400, title: 'Sales Summary',
vAxis: {maxValue: 20000, format: '$##,###', viewWindowMode: 'maximized'},
hAxis: {direction: -1}
});
正确显示所有数据除了日期 - 而不是在图表上显示6月它显示7月???这个月的同一天但这个月错了吗?
答案 0 :(得分:11)
javascript Date对象从00开始计算月份,因此00 = 1月,01 = 2月等...所以当你在月份字段中使用'06'构建日期时,实际上是第7个月,或者7月< / p>
答案 1 :(得分:2)
为了构建wolv2012响应,我遇到了这个问题:JS月计数系统从零开始,而MySQL则返回1到12之间的月数。
我的日期在进入Javascript new Date(...)
之前在SQL中格式化,我通过在我的月份数字中附加“-1”来补偿这一点,同时仍在SQL中:
SELECT DATE_FORMAT(jobs.date, '%Y, %m-1, %d') ...
虽然这对我来说看起来有点DIY,但它绝对有效。
答案 2 :(得分:0)
我有同样的问题,这个帖子帮了我,谢谢!我知道这篇文章很老了,但这对我来说很重要,所以万一它会帮助别人:
我对SQL Server的修复是:SELECT cast(DATEADD(month,-1,[mydate]) as newdate
实际上,对于我使用的google注释图表的格式,我必须格式如下:
replace(cast(DATEADD(month,-1,[mydate]) as date),'-', ',') as dateforJSON