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.

Syntax

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 new (en-US) 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.

Parameters

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(Date.UTC(...) (en-US)) met dezelfde argumenten.

value
Numerieke waarde die het aantal milliseconden voorstelt vanaf 1 Januari 1970 00:00:00 UTC (Unix Tijdperk; maar hou er rekening mee dat de meeste Unix tijd functies in seconden tellen).
dateString
Tekstuele weergave van de datum. De tekst moet een formaat hebben dat wordt herkend door de Date.parse() (en-US) methode (IETF-compliant RFC 2822 timestamps en ook een versie van ISO8601).

Note: Het parsen van datumstrings met de Date constructor (en Date.parse, deze zijn gelijkwaardig) wordt sterk afgeraden door de verschillen en inconsistenties van browsers.

year
Numerieke voorstelling van het jaar. Waarden van 0 tot 99 komen overeen met de jaren 1900 tot 1999. Zie het voorbeeld beneden.
month
Numerieke voorstelling van de maand, beginnend met 0 voor januari tot 11 voor december.
day
Optioneel. Numerieke voorstelling van de dag van de maand.
hour
Optioneel. Numerieke voorstelling van het uur van de dag.
minute
Optioneel. Numerieke voorstelling van het minuut segment van een tijd.
second
Optioneel. Numerieke voorstelling van het seconde segment van een tijd.
millisecond
Optioneel. Numerieke voorstelling van het milliseconde segment van een tijd.

Omschrijving

  • Als er geen argumenten worden gegeven, zal een JavaScript Date object worden gemaakt volgens de huidige tijd en systeeminstellingen.
  • Als er ten minste twee argumenten worden gegeven, worden ontbrekende argumenten op 1 gezet (als de dag ontbreekt) of 0 voor alle andere.
  • De Javascript datum is gebaseerd op een tijdswaarde dat het aantal milliseconden voorstelt sinds 01 Januari, 1970 UTC. Een dag bevat 86,400,000 milliseconden. Het JavaScript Date object heeft een waarde reeks van -100,000,000 dagen tot 100,000,000 dagen relatief aan 01 Januari, 1970 UTC.
  • Het JavaScript Date object biedt uniform gedrag tussen platformen. De tijdswaarde kan doorgegeven worden tussen systemen om hetzelfde punt in tijd voor te stellen. 
  • Het JavaScript 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.
  • Het aanroepen van JavaScript Date als een functie (ofwel, zonder de new (en-US) operator) zal een tekstreeks teruggeven die de huidige datum en tijd weergeeft.

Eigenschappen

Date.prototype (en-US)
Staat het toe om eigenschappen toe te voegen aan het JavaScript Date object.
Date.length
De waarde van Date.length is 7. Dit is het aantal argumenten wat door de constructor wordt verwerkt.

Methodes

Date.now() (en-US)
Geeft de numerieke waarde van de huidige tijd - het aantal milliseconden verlopen sinds 1 Januari 1970 00:00:00 UTC.
Date.parse() (en-US)
Verwerkt een tekstuele representaie van een datum en geeft het aantal milliseconden terug vanaf 1 Januari, 1970, 00:00:00, UTC.

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.UTC() (en-US)
Accepteert de zelfde parameters als de langste vorm van de constructor (ofwel 2 tot 7) en geeft het aantal milliseconden terug vanaf 1 Januari, 1970, 00:00:00 UTC.

JavaScript Date instanties

Alle Date instanties erven van Date.prototype (en-US). Het prototype object van de Date constructor kan aangepast worden om alle Date instanties te beïnvloeden.

Date.prototype Methodes

{{page('/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/prototype', 'Methods')}}

Voorbeelden

Verschillende manieren om een Date object te creëeren

De 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);

Tweegetals jaren worden getransformeerd tot  1900-1999

Om datums tussen de jaren 0 en 99 te creëeren en te verkrijgen, horen Date.prototype.setFullYear() (en-US) en Date.prototype.getFullYear() (en-US) 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)

Verstreken tijd berekenen

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 Web Performance API (en-US)'s hoge resolutie tijdsfunctionaliteiten, kan Performance.now() (en-US) meer betrouwbare en preciezere metingen opleveren dan Date.now() (en-US) kan.

Aantal seconden sinds Unix Epoch

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 Math.floor() (en-US) en niet Math.round() (en-US)).

Specificaties

Specificatie Status Commentaar
ECMAScript (ECMA-262)
The definition of 'Date' in that specification.
Living Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Date' in that specification.
Standard  
ECMAScript 5.1 (ECMA-262)
The definition of 'Date' in that specification.
Standard  
ECMAScript 1st Edition (ECMA-262) Standard Initiële definitie. Geïmplementeerd in JavaScript 1.1.

Browser compatibiliteit

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) [1] (Yes) [1] (Yes) [2] (Yes) [1] (Yes) [1]
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

[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