mirror of
https://github.com/morrisjs/morris.js.git
synced 2024-11-10 21:36:34 +01:00
YYYY-MM-DD date support (closes #2)
This commit is contained in:
parent
f740d80c14
commit
1e61298d7c
21
morris.js
21
morris.js
@ -1,17 +1,30 @@
|
|||||||
|
|
||||||
/*global jQuery: false, Raphael: false */
|
/*global jQuery: false, Raphael: false */
|
||||||
|
|
||||||
function parse_year(year) {
|
function parse_year(date) {
|
||||||
var m = year.toString().match(/(\d+) Q(\d)/);
|
var m = date.toString().match(/^(\d+) Q(\d)$/);
|
||||||
var n = year.toString().match(/(\d+)\-(\d+)/);
|
var n = date.toString().match(/^(\d+)-(\d+)$/);
|
||||||
|
var o = date.toString().match(/^(\d+)-(\d+)-(\d+)$/)
|
||||||
if (m) {
|
if (m) {
|
||||||
return parseInt(m[1], 10) + (parseInt(m[2], 10) * 3 - 1) / 12;
|
return parseInt(m[1], 10) + (parseInt(m[2], 10) * 3 - 1) / 12;
|
||||||
}
|
}
|
||||||
else if (n) {
|
else if (n) {
|
||||||
return parseInt(n[1], 10) + (parseInt(n[2], 10) - 1) / 12;
|
return parseInt(n[1], 10) + (parseInt(n[2], 10) - 1) / 12;
|
||||||
}
|
}
|
||||||
|
else if (o) {
|
||||||
|
// parse to a timestamp
|
||||||
|
var year = parseInt(o[1], 10);
|
||||||
|
var month = parseInt(o[2], 10);
|
||||||
|
var day = parseInt(o[3], 10);
|
||||||
|
var timestamp = new Date(year, month - 1, day).getTime();
|
||||||
|
// get timestamps for the beginning and end of the year
|
||||||
|
var y1 = new Date(year, 0, 1).getTime();
|
||||||
|
var y2 = new Date(year+1, 0, 1).getTime();
|
||||||
|
// calculate a decimal-year value
|
||||||
|
return year + (timestamp - y1) / (y2 - y1);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
return parseInt(year, 10);
|
return parseInt(date, 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user