代码之家  ›  专栏  ›  技术社区  ›  RasmusGP

Google Charts ColumnChart日期格式不显示分钟和小时

  •  1
  • RasmusGP  · 技术社区  · 9 年前

    我正在尝试使用 Google charts

    我使用格式“m-d,HH:mm:ss”来格式化和打印这个时间戳:“2017-07-15 20:10:30”,但它会打印出来

    7-17,00:00:00 7-17, 20:10:30

    这是一个错误还是我错过了什么?

    <html>
        <head>
        <script src="https://www.google.com/jsapi?ext.js"></script>
        </head>
    
    
       <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
        <script type="text/javascript">
          google.charts.load("current", {packages:["corechart"]});
          google.charts.setOnLoadCallback(drawChart);
    
          function drawChart() 
          {
    
            var data = new google.visualization.DataTable();
            data.addColumn('date', 'Date');
            data.addColumn('number', 'Present');
    
    
            data.addRows([
                [new Date("2017-07-15 20:10:30"), 5]
              ]);
    
            var view = new google.visualization.DataView(data);
            view.setColumns([0, 1,
                           { calc: "stringify",
                             sourceColumn: 1,
                             type: "string",
                             role: "annotation" 
                            }]);
    
            var options = {
                width: 600,
                height: 400,
                //bar: {groupWidth: "95%"},
                legend: { position: "none" },
                vAxis: {title: 'Times occured'},
                hAxis: {
                    format: "M-d, HH:mm:ss", // <------- This shows: "7-17,00:00:00" not "7-17, 20:10:30"
                    //format: "HH:mm",
                    //format:'M-d H:mm',
    
                    title: 'Date',
                },
            };
            var chart = new google.visualization.ColumnChart(document.getElementById("chart_div"));
            chart.draw(view, options);
          }
        </script>
    
    <body class="chart">
        <div id="chart_div"></div>
    </body>
    </html>
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   WhiteHat    9 年前

    无论如何,建议对柱状图使用离散轴(字符串)

    可以使用数据格式化程序转换x轴

    google.charts.load("current", {
      callback: drawChart,
      packages:["corechart"]
    });
    
    function drawChart() {
      var formatDate = new google.visualization.DateFormat({
        pattern: 'M-d, HH:mm:ss'
      });
    
      var data = new google.visualization.DataTable();
      data.addColumn('date', 'Date');
      data.addColumn('number', 'Present');
      data.addRows([
        [new Date("2017-07-15 20:10:30"), 5]
      ]);
        
      var view = new google.visualization.DataView(data);
      view.setColumns([{
        calc: function (dt, row) {
          return formatDate.formatValue(dt.getValue(row, 0))
        },
        type: "string",
        label: data.getColumnLabel(0)
      }, 1, {
        calc: "stringify",
        sourceColumn: 1,
        type: "string",
        role: "annotation" 
      }]);
    
      var options = {
        width: 600,
        height: 400,
        legend: { position: "none" },
        vAxis: {title: 'Times occured'},
        hAxis: {
          title: 'Date'
        }
      };
      var chart = new google.visualization.ColumnChart(document.getElementById("chart_div"));
      chart.draw(view, options);
    }
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="chart_div"></div>