Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
c3-closed
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
charts
c3-closed
Commits
878e1daa
Commit
878e1daa
authored
Dec 07, 2014
by
Masayuki Tanaka
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Accept unixtime string as timeseries date input - #805
parent
f834ca6a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
124 additions
and
39 deletions
+124
-39
c3.js
c3.js
+2
-2
c3.min.js
c3.min.js
+0
-0
data-spec.js
spec/data-spec.js
+120
-35
core.js
src/core.js
+2
-2
No files found.
c3.js
View file @
878e1daa
...
...
@@ -918,8 +918,8 @@
var
$$
=
this
,
parsedDate
;
if
(
date
instanceof
Date
)
{
parsedDate
=
date
;
}
else
if
(
typeof
date
===
'number'
)
{
parsedDate
=
new
Date
(
date
);
}
else
if
(
typeof
date
===
'number'
||
!
isNaN
(
date
)
)
{
parsedDate
=
new
Date
(
+
date
);
}
else
{
parsedDate
=
$$
.
dataTimeFormat
(
$$
.
config
.
data_xFormat
).
parse
(
date
);
}
...
...
c3.min.js
View file @
878e1daa
This source diff could not be displayed because it is too large. You can
view the blob
instead.
spec/data-spec.js
View file @
878e1daa
...
...
@@ -91,49 +91,134 @@ describe('c3 chart data', function () {
});
describe
(
'milliseconds timeseries x'
,
function
()
{
it
(
'should load timeseries data successfully'
,
function
()
{
args
=
{
data
:
{
x
:
'date'
,
xFormat
:
'%Y-%m-%d %H:%M:%S.%L'
,
columns
:
[
[
'date'
,
"2014-05-20 17:25:00.123"
,
"2014-05-20 17:30:00.345"
],
[
'data1'
,
30
,
200
],
[
'data2'
,
130
,
300
]
]
},
axis
:
{
x
:
{
type
:
'timeseries'
,
tick
:
{
format
:
'%Y-%m-%d %H:%M:%S.%L'
,
multiline
:
false
describe
(
'as date string'
,
function
()
{
it
(
'should update args'
,
function
()
{
args
=
{
data
:
{
x
:
'date'
,
xFormat
:
'%Y-%m-%d %H:%M:%S.%L'
,
columns
:
[
[
'date'
,
"2014-05-20 17:25:00.123"
,
"2014-05-20 17:30:00.345"
],
[
'data1'
,
30
,
200
],
[
'data2'
,
130
,
300
]
]
},
axis
:
{
x
:
{
type
:
'timeseries'
,
tick
:
{
format
:
'%Y-%m-%d %H:%M:%S.%L'
,
multiline
:
false
}
}
}
}
};
expect
(
true
).
toBeTruthy
();
});
};
expect
(
true
).
toBeTruthy
();
});
it
(
'should have correct number of xs'
,
function
()
{
expect
(
Object
.
keys
(
chart
.
internal
.
data
.
xs
).
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data1
.
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
.
length
).
toBe
(
2
);
});
it
(
'should have Date object as x'
,
function
()
{
var
xs
=
chart
.
internal
.
data
.
xs
;
expect
(
+
xs
.
data1
[
0
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
25
,
0
,
123
));
expect
(
+
xs
.
data1
[
1
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
30
,
0
,
345
));
expect
(
+
xs
.
data2
[
0
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
25
,
0
,
123
));
expect
(
+
xs
.
data2
[
1
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
30
,
0
,
345
));
});
it
(
'should have milliseconds tick format'
,
function
()
{
var
expected
=
[
"2014-05-20 17:25:00.123"
,
"2014-05-20 17:30:00.345"
];
chart
.
internal
.
main
.
selectAll
(
'.c3-axis-x g.tick text'
).
each
(
function
(
d
,
i
)
{
expect
(
d3
.
select
(
this
).
text
()).
toBe
(
expected
[
i
]);
});
});
it
(
'should have correct number of xs'
,
function
()
{
expect
(
Object
.
keys
(
chart
.
internal
.
data
.
xs
).
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data1
.
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
.
length
).
toBe
(
2
);
});
it
(
'should have Date object as x'
,
function
()
{
var
xs
=
chart
.
internal
.
data
.
xs
;
expect
(
+
xs
.
data1
[
0
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
25
,
0
,
123
));
expect
(
+
xs
.
data1
[
1
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
30
,
0
,
345
));
expect
(
+
xs
.
data2
[
0
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
25
,
0
,
123
));
expect
(
+
xs
.
data2
[
1
]).
toBe
(
+
new
Date
(
2014
,
4
,
20
,
17
,
30
,
0
,
345
));
describe
(
'as unixtime number'
,
function
()
{
it
(
'should update args'
,
function
()
{
args
=
{
data
:
{
x
:
'date'
,
columns
:
[
[
'date'
,
1417622461123
,
1417622522345
],
[
'data1'
,
30
,
200
],
[
'data2'
,
130
,
300
]
]
},
axis
:
{
x
:
{
type
:
'timeseries'
,
tick
:
{
format
:
'%Y-%m-%d %H:%M:%S.%L'
}
}
}
};
expect
(
true
).
toBeTruthy
();
});
it
(
'should have correct number of xs'
,
function
()
{
expect
(
Object
.
keys
(
chart
.
internal
.
data
.
xs
).
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data1
.
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
.
length
).
toBe
(
2
);
});
it
(
'should have Date object as x'
,
function
()
{
var
xs
=
chart
.
internal
.
data
.
xs
;
expect
(
+
xs
.
data1
[
0
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
1
,
1
,
123
));
expect
(
+
xs
.
data1
[
1
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
2
,
2
,
345
));
expect
(
+
xs
.
data2
[
0
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
1
,
1
,
123
));
expect
(
+
xs
.
data2
[
1
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
2
,
2
,
345
));
});
});
it
(
'should have milliseconds tick format'
,
function
()
{
var
expected
=
[
"2014-05-20 17:25:00.123"
,
"2014-05-20 17:30:00.345"
];
chart
.
internal
.
main
.
selectAll
(
'.c3-axis-x g.tick text'
).
each
(
function
(
d
,
i
)
{
expect
(
d3
.
select
(
this
).
text
()).
toBe
(
expected
[
i
]);
describe
(
'as unixtime string'
,
function
()
{
it
(
'should upate args'
,
function
()
{
args
=
{
data
:
{
x
:
'date'
,
columns
:
[
[
'date'
,
"1417622461123"
,
"1417622522345"
],
[
'data1'
,
30
,
200
],
[
'data2'
,
130
,
300
]
]
},
axis
:
{
x
:
{
type
:
'timeseries'
,
tick
:
{
format
:
'%Y-%m-%d %H:%M:%S.%L'
,
multiline
:
false
}
}
}
};
expect
(
true
).
toBeTruthy
();
});
it
(
'should have correct number of xs'
,
function
()
{
expect
(
Object
.
keys
(
chart
.
internal
.
data
.
xs
).
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data1
.
length
).
toBe
(
2
);
expect
(
chart
.
internal
.
data
.
xs
.
data2
.
length
).
toBe
(
2
);
});
it
(
'should have Date object as x'
,
function
()
{
var
xs
=
chart
.
internal
.
data
.
xs
;
expect
(
+
xs
.
data1
[
0
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
1
,
1
,
123
));
expect
(
+
xs
.
data1
[
1
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
2
,
2
,
345
));
expect
(
+
xs
.
data2
[
0
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
1
,
1
,
123
));
expect
(
+
xs
.
data2
[
1
]).
toBe
(
+
new
Date
(
2014
,
11
,
3
,
16
,
2
,
2
,
345
));
});
});
});
...
...
src/core.js
View file @
878e1daa
...
...
@@ -913,8 +913,8 @@ c3_chart_internal_fn.parseDate = function (date) {
var
$$
=
this
,
parsedDate
;
if
(
date
instanceof
Date
)
{
parsedDate
=
date
;
}
else
if
(
typeof
date
===
'number'
)
{
parsedDate
=
new
Date
(
date
);
}
else
if
(
typeof
date
===
'number'
||
!
isNaN
(
date
)
)
{
parsedDate
=
new
Date
(
+
date
);
}
else
{
parsedDate
=
$$
.
dataTimeFormat
(
$$
.
config
.
data_xFormat
).
parse
(
date
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment