2016-11-29 95 views
2

我有一个谷歌折线图显示正确的行;但日期的注释完全关闭了一个月。 json数据有正确的日期;但不知何故谷歌图表转换它: chart with wrong date谷歌图表显示错误的月份

任何人有一个想法,为什么会发生这种情况?

回答

4

毫无疑问,使用下面的日期构造函数时被显示

正确的月份,的月份是从零开始 ...

Date(year, month, day, hour, min, sec, mill)

看到下面的代码片段...

console.log(new Date(2016, 0, 1)); // <-- Jan 
 
console.log(new Date(2016, 1, 1)); // <-- Feb 
 
console.log(new Date(2016, 11, 1)); // <-- Dec
下面

的另一个片段使用与谷歌图表JSON证明......

google.charts.load('current', { 
 
    callback: function() { 
 
    var data = new google.visualization.DataTable({ 
 
     "cols": [ 
 
     {"label": "Date", "type": "date"} 
 
     ], 
 
     "rows": [ 
 
     {"c": [{"v": "Date(2016,0,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,1,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,2,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,3,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,4,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,5,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,6,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,7,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,8,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,9,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,10,28,15,0,0)"}]}, 
 
     {"c": [{"v": "Date(2016,11,28,15,0,0)"}]}, 
 
     ] 
 
    }); 
 

 
    var chart = new google.visualization.Table(document.getElementById('chart_div')); 
 
    chart.draw(data); 
 
    }, 
 
    packages:['table'] 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div"></div>

下面是一个PHP代码段使用上述构造

<?php 
$date1 = new DateTime(); 
$date2 = "Date(".date_format($date1, 'Y').", ".((int) date_format($date1, 'm') - 1).", ".date_format($date1, 'd').", ".date_format($date1, 'H').", ".date_format($date1, 'i').", ".date_format($date1, 's').")"; 

echo $date2; 
?> 
创建JSON日期

here is a php fiddle要测试上面的代码片段...

+0

它帮助!谢谢 – stUrb

+1

你救了我的一天!基于零的月份?为什么?......一个修辞问题。这是JavaScript。 –