javascript - 从javascript中的dynamodb时间戳数据中提取日期和时间用于散点图

标签 javascript date google-visualization amazon-dynamodb scatter-plot

这是我的日期时间格式“2018.01.16 14:35:40”。我从 dynamodb 数据库中以字符串形式获取这些数据。现在,我需要将日期和时间提取为 2 个不同变量中的数字,以使用 javascript 绘制散点图。为此,我需要将此格式格式化为 Date(2018,01,16) 和 Date(2018,01,16,14,35) 格式。第一个用于 x 轴中的日期行,第二个用于 y 轴中的时间行。我没有找到任何 javascript 函数来执行此操作。我正在尝试为此使用 toLocaleDateString 和 toLocaleTimeString 函数。但那些不是这样工作的。这是我的代码,

    function onScan(err, data) {
            if (err) {
                document.getElementById('textarea').innerHTML += "Unable to scan the table: " + "\n" + JSON.stringify(err, undefined, 2);
            } else {
                var clickDate, clickTime;
                data.Items.forEach(function (iotButton) {
                    clickDate = iotButton.TimeStamp.toLocaleDateString(undefined, {
                        day: 'numeric',
                        month: 'numeric',
                        year: 'numeric'});

                    clickTime = iotButton.TimeStamp.toLocaleTimeString({
                    hour: '2-digit',
                            minute: '2-digit',
                    second: '2-digit'
                });

                drawChart(clickDate, clickTime);
            }
            );
        }
        }
    google.charts.load('current', {'packages': ['scatter']});
    google.charts.setOnLoadCallback(drawChart);

    function drawChart(clickDate, clickTime) {
        var data = new google.visualization.DataTable();
        data.addColumn('date', 'Date');
        data.addColumn('number', 'Time');

        data.addRows([
            [clickDate, clickTime]
        ]);

        var options = {
            width: 700,
            height: 500,
            refreshInterval: 5,
            chart: {
                title: 'Rundzeiten nach Messzeitpunkt'
            },
            hAxis: {title: 'Date'},
            vAxis: {title: 'Time'}
        };

        var chart = new google.charts.Scatter(document.getElementById('scatterchart_material'));

        chart.draw(data, google.charts.Scatter.convertOptions(options));
    }

任何人都可以给我提示或解决方案,我如何单独提取日期和时间以在散点图中显示它?提前致谢。

最佳答案

首先,我建议先加载 google。

然后,对 y 轴使用列类型 timeofday

然后您可以在各个部分拆分日期字符串以添加行。

请看下面的片段...

google.charts.load('current', {
  packages: ['scatter']
}).then(function () {
  var data = new google.visualization.DataTable();
  data.addColumn('date', 'Date');
  data.addColumn('timeofday', 'Time');

  var chart = new google.charts.Scatter(document.getElementById('scatterchart_material'));

  var options = {
    width: 700,
    height: 500,
    chart: {
      title: 'Rundzeiten nach Messzeitpunkt'
    },
    hAxis: {title: 'Date'},
    vAxis: {title: 'Time'}
  };

  // execute method that calls onScan here

  function onScan(err, data) {
    if (err) {
      document.getElementById('textarea').innerHTML += "Unable to scan the table: " + "\n" + JSON.stringify(err, undefined, 2);
    } else {
      data.Items.forEach(function (iotButton) {
        var dateParts = iotButton.TimeStamp.split(' ');
        var clickDate = dateParts[0].split('.');
        var clickTime = dateParts[1].split(':');

        data.addRow([
          new Date(parseInt(clickDate[0]), parseInt(clickDate[1])-1, parseInt(clickDate[2])),
          [parseInt(clickTime[0]), parseInt(clickTime[1]), parseInt(clickTime[2])]
        ]);
      });
      chart.draw(data, google.charts.Scatter.convertOptions(options));
    }
  }
});

关于javascript - 从javascript中的dynamodb时间戳数据中提取日期和时间用于散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48284511/

相关文章:

javascript - 我应该从哪里开始学习 Highcharts JS?

javascript - 更改电脑时区后,Chrome 无法正确获取时区名称

PHP 日期不包括周末

php - 如何在 json 中输出 javascript 日期

api - 您如何在Google Visualization Chart API中设置百分比?

javascript - 如何在 javascript 中将字符串分成 x 等行(文本对齐)

javascript - 遇到这个基本的 while 循环硬件问题

javascript - User.id 未定义

excel - For-Next 循环使用月末日期作为迭代

jquery - 画一条线来显示谷歌散点图中的平均分布