Fix KML date parsing
We even have an incorrect test here. And like in ol.format.XSD, we can use Date.parse().
This commit is contained in:
@@ -1360,28 +1360,8 @@ ol.format.KML.whenParser_ = function(node, objectStack) {
|
|||||||
'gxTrackObject should be an Object');
|
'gxTrackObject should be an Object');
|
||||||
var whens = gxTrackObject.whens;
|
var whens = gxTrackObject.whens;
|
||||||
var s = ol.xml.getAllTextContent(node, false);
|
var s = ol.xml.getAllTextContent(node, false);
|
||||||
var re =
|
var when = Date.parse(s);
|
||||||
/^\s*(\d{4})($|-(\d{2})($|-(\d{2})($|T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?)))))\s*$/;
|
whens.push(isNaN(when) ? 0 : when);
|
||||||
var m = re.exec(s);
|
|
||||||
if (m) {
|
|
||||||
var year = parseInt(m[1], 10);
|
|
||||||
var month = m[3] ? parseInt(m[3], 10) - 1 : 0;
|
|
||||||
var day = m[5] ? parseInt(m[5], 10) : 1;
|
|
||||||
var hour = m[7] ? parseInt(m[7], 10) : 0;
|
|
||||||
var minute = m[8] ? parseInt(m[8], 10) : 0;
|
|
||||||
var second = m[9] ? parseInt(m[9], 10) : 0;
|
|
||||||
var when = Date.UTC(year, month, day, hour, minute, second);
|
|
||||||
if (m[10] && m[10] != 'Z') {
|
|
||||||
var sign = m[11] == '-' ? -1 : 1;
|
|
||||||
when += sign * 60 * parseInt(m[12], 10);
|
|
||||||
if (m[13]) {
|
|
||||||
when += sign * 60 * 60 * parseInt(m[13], 10);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
whens.push(when);
|
|
||||||
} else {
|
|
||||||
whens.push(0);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1138,7 +1138,7 @@ describe('ol.format.KML', function() {
|
|||||||
expect(flatCoordinates[11]).to.be.eql(Date.UTC(2014, 1, 6, 0, 0, 0));
|
expect(flatCoordinates[11]).to.be.eql(Date.UTC(2014, 1, 6, 0, 0, 0));
|
||||||
expect(flatCoordinates[15]).to.be.eql(Date.UTC(2014, 1, 6, 19, 39, 3));
|
expect(flatCoordinates[15]).to.be.eql(Date.UTC(2014, 1, 6, 19, 39, 3));
|
||||||
expect(flatCoordinates[19]).to.be.eql(
|
expect(flatCoordinates[19]).to.be.eql(
|
||||||
Date.UTC(2014, 1, 6, 19, 39, 10) + 3 * 60
|
Date.UTC(2014, 1, 6, 16, 39, 10)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user