Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript C3.js-带时间的Timeseries无法分析_Javascript_Parsing_Time Series_C3.js - Fatal编程技术网

Javascript C3.js-带时间的Timeseries无法分析

Javascript C3.js-带时间的Timeseries无法分析,javascript,parsing,time-series,c3.js,Javascript,Parsing,Time Series,C3.js,我想使用格式为2015-09-17 18:20:34的日期和格式字符串'%Y-%m-%d%H:%m:%S'显示带有C3.js的时间序列图,但分析失败 我的代码: var chart = c3.generate({ bindto: '#chart', data: { x: 'times', columns: [ ['times','2015-09-17 18:20:34','2015-09-17 18:25:42','2015-09-17 1

我想使用格式为
2015-09-17 18:20:34
的日期和格式字符串
'%Y-%m-%d%H:%m:%S'
显示带有
C3.js
的时间序列图,但分析失败

我的代码:

var chart = c3.generate({
    bindto: '#chart',
    data: {
      x: 'times',
      columns: [
        ['times','2015-09-17 18:20:34','2015-09-17 18:25:42','2015-09-17 18:30:48'],
        ['data','1539','1546','1546','1550']
      ]
    },
    axis: {
        x: {
            type: 'timeseries',
            tick: {
                format: '%Y-%m-%d %H:%M:%S'
            }
        }
    }
});
我得到以下错误:

02:26:44.889 Failed to parse x '2015-09-17 18:20:34' to Date object c3.min.js:1:21943
02:26:44.889 Failed to parse x '2015-09-17 18:25:42' to Date object c3.min.js:1:21943
02:26:44.890 Failed to parse x '2015-09-17 18:30:48' to Date object c3.min.js:1:21943
02:26:44.890 Failed to parse x '2015-09-17 18:20:34' to Date object c3.min.js:1:21943
02:26:44.891 Failed to parse x '2015-09-17 18:25:42' to Date object c3.min.js:1:21943
02:26:44.892 Failed to parse x '2015-09-17 18:30:48' to Date object c3.min.js:1:21943

如果我在数据和格式中省略了时间,它会起作用,但我也需要时间。

我找到了解决问题的方法:

对象中的格式仅用于定义日期的显示方式。如果要指定日期解析的格式,必须在
数据
对象中使用
xFormat

var chart = c3.generate({
    bindto: '#chart',
    data: {
      x: 'times',
      xFormat: '%Y-%m-%d %H:%M:%S', // how the date is parsed
      columns: [
        ['times','2015-09-17 18:20:34','2015-09-17 18:25:42','2015-09-17 18:30:48'],
        ['data','1539','1546','1546','1550']
      ]
    },
    axis: {
        x: {
            type: 'timeseries',
            tick: {
                format: '%Y-%m-%d %H:%M:%S' // how the date is displayed
            }
        }
    }
});

还有另一种向c3 timeseries数组传递日期的方法。在将日期字符串馈送到c3之前,可以将其转换为

var chart = c3.generate({
    bindto: '#chart',
    data: {
      x: 'times',
      xFormat: '%Y-%m-%d %H:%M:%S', // how the date is parsed
      columns: [
        ['times',new Date('2015-09-17 18:20:34'),new Date('2015-09-17 18:25:42'),new Date('2015-09-17 18:30:48')],
        ['data','1539','1546','1546','1550']
      ]
    },
    axis: {
        x: {
            type: 'timeseries',
            tick: {
                format: '%Y-%m-%d %H:%M:%S' // how the date is displayed
            }
        }
    }
});
如果在将日期字符串转换为日期对象(例如2016-01-01T00:00:00Z)时遇到困难,也可以使用解析日期字符串

var momentjsobject = moment('2016-05-06T00:00:00Z');
var dateObject = new Date(momentjsobject.format('YYYY-MM-DD HH:mm:ss'));

嘿,你有没有得到这个问题的最新消息,我也在等待答案:)@vinodh是的,我找到了解决方案并发布了。:)(如果有帮助的话,请随意投票):D)我已经试过了,但它能提供帮助。。你知道吗?X格式:'%Y/%m/%d%H:%m:%S%A',格式:'%Y-%m-%d%H:%m:%S%A'你的时间数据是什么样子的?2015/09/18 03:03:32 pm改用这个格式字符串:
'%Y/%m/%d%H:%m:%S%p'
:)天哪,要找到有关X格式语法的信息真是太麻烦了。事实上,我没有找到,但注意到它与MySQL DATE_FORMAT()语法类似。在MySQL中,%p是AM/PM的占位符。