Det finns ingen färdig funktion i Date-objektet för att plocka ut datum från ISO-strängen utan den måste byggas själv. Likadant så är det första datumet inte korrekt formaterat för att skapa ett korrekt datum via new Date(). Lösningen får alltså bli såhär för dina datum.
<script>
Date.prototype.setISO8601 = function (string) {
var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
"(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
"(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
var d = string.match(new RegExp(regexp));
var offset = 0;
var date = new Date(d[1], 0, 1);
if (d[3]) { date.setMonth(d[3] - 1); }
if (d[5]) { date.setDate(d[5]); }
if (d[7]) { date.setHours(d[7]); }
if (d[8]) { date.setMinutes(d[8]); }
if (d[10]) { date.setSeconds(d[10]); }
if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
if (d[14]) {
offset = (Number(d[16]) * 60) + Number(d[17]);
offset *= ((d[15] == '-') ? 1 : -1);
}
offset -= date.getTimezoneOffset();
time = (Number(date) + (offset * 60 * 1000));
this.setTime(Number(time));
}
var oldDate=new Date();
var newDate=new Date();
oldDate.setDate(14)
oldDate.setMonth(5) //javscripts datum räknar från 0
oldDate.setFullYear(2007)
newDate.setISO8601("2008-10-25T14:57:52+02:00")
alert(oldDate)
alert(newDate)
alert(oldDate<newDate)
</script>
Har du däremot två redan skapadae datum i javascript som du vet är korrekta är det bara att använda lt ( < ) och gt ( > ).