I has this objects array:
var data=[{Id:540, MeasureDate:\"2016-06-27T15:06:47\"},
{Id:541, MeasureDate:\"2016-06-27T12:24:39\"}];
I
The reason is you don't have a timezone specified in your ISO8601 timestamp. Chrome defaults to UTC and and IE to local when it is not specified (or the other way around, I forget).
You can either:
a) add 'Z' to the end of your timestamp to specify UTC or add another timezone ( see wikipedia for valid formats https://en.m.wikipedia.org/wiki/ISO_8601)
b) use momentjs which I believe will standardize the behavior across the browsers.
As mentioned by @elliot moment can help you. Check this solution:
(function() {
var data = [{
Id: 540,
MeasureDate: "2016-06-27T13:06:47"
}, {
Id: 541,
MeasureDate: "2016-06-27T12:24:39"
}, {
Id: 540,
MeasureDate: "2016-06-27T13:16:47"
}];
function getMaxInArray(items, max) {
if (items.length) {
var item = items.splice(0, 1)[0];
return getMaxInArray(items, Math.max(item, !!max ? max : item));
}
return max;
}
var dates = data.map(function(x) { return moment(x.MeasureDate); });
var latest = moment(getMaxInArray(dates));
console.log(latest.format());
}());
http://plnkr.co:80/oeMDJYzDGkgm4cX4NIpo