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