--- title: Date slug: Web/JavaScript/Reference/Global_Objects/Date tags: - Datum - JavaScript - Referentie translation_of: Web/JavaScript/Reference/Global_Objects/Date ---
Creëert een JavaScript Date instantie die een enkel punt in tijd voorstelt. Date objecten zijn gebaseerd op een tijdwaarde die gelijk staat aan het aantal milliseconden sinds 1 Januari, 1970 UTC.
new Date(); new Date(value); new Date(dateString); new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
NB: JavaScript Date kan enkel worden geïnstantieerd door JavaScript Date als een constructor aan te roepen: het aanroepen als een gewone functie (bijv. zonder de {{jsxref("Operators/new", "new")}} operator) zal een string terug geven in plaats van een Date object; anders dan andere JavaScript object types, hebben JavaScript Date objecten geen letterlijke syntax.
NB: Indien Date wordt aangeroepen als een constructor met meer dan een argument, als waarden groter zijn dan hun logische reeks (bij. 13 wordt gegeven als waarde voor de maand of 70 voor als waarde voor de minuut), wordt de naastgelegen waarde aangepast. Bijvoorbeeld new Date(2013, 13, 1) staat gelijk aan new Date(2014, 1, 1), beide creëren een datum voor 2014-02-01 (let er op dat de maand vanaf 0 telt). Dit geldt ook voor andere waarden: new Date(2013, 2, 1, 0, 70) is gelijk aan new Date(2013, 2, 1, 1, 10) en beide creëren een datum voor 2013-03-01T01:10:00.
NB: Waar Date wordt aangeroepen als een constructor met meer dan een argument, staan de opgegeven argumenten voor lokale tijd. Als UTC gewenst is, gebruik dan new Date({{jsxref("Date.UTC()", "Date.UTC(...)")}}) met dezelfde argumenten.
valuedateStringNote: Het parsen van datumstrings met de Date constructor (en Date.parse, deze zijn gelijkwaardig) wordt sterk afgeraden door de verschillen en inconsistenties van browsers.
yearmonthdayhourminutesecondmillisecondDate object worden gemaakt volgens de huidige tijd en systeeminstellingen.Date object heeft een waarde reeks van -100,000,000 dagen tot 100,000,000 dagen relatief aan 01 Januari, 1970 UTC.Date object biedt uniform gedrag tussen platformen. De tijdswaarde kan doorgegeven worden tussen systemen om hetzelfde punt in tijd voor te stellen. Date object ondersteunt een aantal UTC (universal) functies, evenals lokale tijd functies. UTC, ook bekend als Greenwich Mean Time (GMT), refereert naar de tijd zoals bepaald door de World Time Standard. De lokale tijd is de tijd zoals bekend bij de computer waar JavaScript wordt uitgevoerd.Date als een functie (ofwel, zonder de {{jsxref("Operators/new", "new")}} operator) zal een tekstreeks teruggeven die de huidige datum en tijd weergeeft.Date object.Date.lengthDate.length is 7. Dit is het aantal argumenten wat door de constructor wordt verwerkt.Note: Het parsen van datumstrings met de Date constructor (en Date.parse, deze zijn gelijk) wordt sterk afgeraden door de verschillen en inconsistenties van browsers.
Date instantiesAlle Date instanties erven van {{jsxref("Date.prototype")}}. Het prototype object van de Date constructor kan aangepast worden om alle Date instanties te beïnvloeden.
Date object te creëerenDe volgende voorbeelden tonen verschillende manieren om Javascript datums te creëren:
Note: Het parsen van datumstrings met de Date constructor (en Date.parse, deze zijn gelijk) wordt sterk afgeraden vanwege de verschillen en inconsistenties van browsers.
var vandaag = new Date();
var verjaardag = new Date('December 17, 1995 03:24:00');
var verjaardag = new Date('1995-12-17T03:24:00');
var verjaardag = new Date(1995, 11, 17);
var verjaardag = new Date(1995, 11, 17, 3, 24, 0);
Om datums tussen de jaren 0 en 99 te creëeren en te verkrijgen, horen {{jsxref("Date.prototype.setFullYear()")}} en {{jsxref("Date.prototype.getFullYear()")}} gebruikt te worden.
var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) // Verouderde methode, 98 wordt hier naar 1998 omgezet date.setYear(98); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT) date.setFullYear(98); // Sat Feb 01 0098 00:00:00 GMT+0000 (BST)
De volgende voorbeelden tonen hoe het mogelijk is om te bepalen hoeveel tijd, in milliseconden, er is verstreken tussen twee Javascript datums.
In verband met het de mogelijke verschillen in lengtes van dagen (door de overgangen tussen zomer- en wintertijd), maanden en jaren, kunnen er problemen optreden als wordt geprobeerd verschillen te bepalen die groter zijn dan uren, minuten en seconden. Het wordt aangeraden eerst grondig onderzoek hiernaar te doen, alvorens dit te proberen.
// met Date objecten var start = Date.now(); // de gebeurtenis om te meten hoort hier: doeIetsVoorEenLangePeriode(); var einde = Date.now(); var verstreken = einde - start; // verstreken tijd in milliseconden
// met ingebouwde methodes var start = new Date(); // de gebeurtenis om te meten hoort hier: doeIetsVoorEenLangePeriode(); var einde = new Date(); var verstreken = einde.getTime() - start.getTime(); // verstreken tijd in milliseconden
// om een functie te testen en de return waarde terug te krijgen
function printVerstrekenTijd(fTest) {
var nStartTijd = Date.now(),
vReturn = fTest(),
nEindTijd = Date.now();
console.log('Verstreken tijd: ' + String(nEindTijd - nStartTijd) + ' milliseconden');
return vReturn;
}
var jouwFunctieReturn = printVerstrekenTijd(jouwFunctie);
NB: In browsers die ondersteuning bieden voor {{domxref("window.performance", "Web Performance API", "", 1)}}'s hoge resolutie tijdsfunctionaliteiten, kan {{domxref("Performance.now()")}} meer betrouwbare en preciezere metingen opleveren dan {{jsxref("Date.now()")}} kan.
var seconden = Math.floor(Date.now() / 1000);
In dit geval is het belangrijk een geheel getal te retourneren (eenvoudige deling is niet toereikend), waarbij het gaat het aantal feitelijk verstreken seconden (daarom gebruikt deze code {{jsxref("Math.floor()")}} en niet {{jsxref("Math.round()")}}).
| Specificatie | Status | Commentaar |
|---|---|---|
| {{SpecName('ESDraft', '#sec-date-objects', 'Date')}} | {{Spec2('ESDraft')}} | |
| {{SpecName('ES6', '#sec-date-objects', 'Date')}} | {{Spec2('ES6')}} | |
| {{SpecName('ES5.1', '#sec-15.9', 'Date')}} | {{Spec2('ES5.1')}} | |
| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Initiële definitie. Geïmplementeerd in JavaScript 1.1. |
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | {{CompatVersionUnknown}} [1] | {{CompatVersionUnknown}} [1] | {{CompatVersionUnknown}} [2] | {{CompatVersionUnknown}} [1] | {{CompatVersionUnknown}} [1] |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
[1] Some browsers can have issues when parsing dates: 3/14/2012 blog from danvk Comparing FF/IE/Chrome on Parsing Date Strings
[2] ISO8601 Date Format is not supported in Internet Explorer 8, and other version can have issues when parsing dates