---
title: "Hur jämför man om datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/161485-hur-jämför-man-om-datum"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Pedda"
published: "2007-06-14T06:49:21.000Z"
updated: "2007-06-14T08:11:59.000Z"
replies: 3
views: 369
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/161485-hur-jämför-man-om-datum"
---

# Hur jämför man om datum

## #1 — Pedda, 2007-06-14T06:49Z

Låt oss säga att jag har två datum

Datum 1     2007-06-14
Datum 2     2008-10-25T14:57:52+02:00

Hur kollar jag enklast om datum 1 är lägre än datum 2?

Permalänk: https://www.webforum.nu/p/161485

## #2 — colione, 2007-06-14T07:07Z

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 ( \> ).

Permalänk: https://www.webforum.nu/p/1993065

## #3 — Pedda, 2007-06-14T07:55Z

Ok, får kolla på det.
Datum 1 kommer från ett formulär och datum 2 hämtar jag från en xml fil.

Permalänk: https://www.webforum.nu/p/1993072

## #4 — colione, 2007-06-14T08:11Z

Om jag var osäker på hur folk skrev in dem via formuläret hade jag skrivit ett regeexp och försökt hämta ut uppgifterna med det.

Permalänk: https://www.webforum.nu/p/1993073

---

Tråden på webben: https://www.webforum.nu/amne/javascript/161485-hur-jämför-man-om-datum
