Date

Resum

Crea una instància de tipus Date de JavaScript, que representa un únic moment en el temps. Els objectes de tipus Date es basen en un valor de temps que mesura el nombre de milisegons que han passat des de l'u de gener de 1970 UTC.

Constructor

new Date();
new Date(valor);
new Date(dataString);
new Date(any, mes[, dia[, hora[, minuts[, segons[, milisegons]]]]]);

Nota: Els objectes Date de JavaScript només poden ser instanciats cridant Date com a constructor: Si es crida la funció com una funció normal (és a dir, sense l'operador new), aquesta retornarà una string en comptes d'un objecte de tipus Date; al contrari que altres tipus d'objectes JavaScript, els objectes de JavaScript de tipus Date no poden ser representats com a literals.

Paràmetres

Nota: Quan es crida Date com a constructor amb més d'un argument, si els valors són més grans que el seu rang lògic (per exemple, si es passa 13 com a valor pel mes o 70 com a valor de minuts), Date ajusta el valor adjacent. Per exemple, new Date(2013, 13, 1) és equivalent a new Date(2014, 1, 1), ambdós creen un objecte de tipus Date que representa 2014-02-01 (cal destacar que els mesos es comencen a contar des de zero). El mateix s'aplica per a altres valors: new Date(2013, 2, 1, 0, 70) és equivalent a new Date(2013, 2, 1, 1, 10) i ambdós representen 2013-03-01T01:10:00.

Nota: Quan es crida Date com a constructor amb més d'un argument, els arguments especificats representen l'hora local. Si es pretèn passar valors UTC, utilitzeu new Date(Date.UTC(...)) amb aquests arguments.

valor
Nombre sencer que representa el nombre de milisegons des de l'1 de gener de 1970 00:00:00 UTC (Època UNIX).
dataString
Valor String que representa una data. La String ha d'estar en un format reconegut pel mètode Date.parse() (Marques de temps RFC 2822 compatibles amb el IETF o bé una versió de la ISO8601).
any
Valor sencer que representa un any. Els valors des de 0 a 99 representen els anys des de 1900 a 1999. Vegeu l'exemple a continuació.
mes
Valor sencer que representa un mes, començant per zero com a gener i acabant amb 11 com a desembre.
dia
Opcional. Valor sencer que representa el dia del mes.
hora
Opcional. Valor sencer que representa l'hora del dia.
minut
Opcional. Valor sencer que representa els minuts d'un segment de temps.
segon
Opcional. Valor sencer que representa els segons d'un segment de temps.
milisegons
Opcional. Valor sencer que representa els milisegons d'un segment de temps.

Descripció

  • Si no es proporciona cap argument, el constructor crea un objecte de JavaScript de tipus Date i l'inicialitza amb l'hora actual proporcionada pel sistema.
  • Si es proporcionen al menys dos arguments, els arguments no proporcionats es consideren o bé 1 (si no s'especifica el dia) o bé 0 per a tots els altres.
  • L'hora de JavaScript es basa en els milisegons que han passat des de la mitja nit de l'1 de gener de 1970 UTC. Un dia té 86.400.000 milisegons. El rang de l'objecte de JavaScript Date és de -100.000.000 dies a 100.000.000 dies relatius a l'1 de gener de 1970 UTC.
  • L'objecte de JavaScript Date proporciona el mateix comportament a totes les plataformes on s'utilitzi. El valor de temps es pot passar entre sistemes per a representar el mateix moment del temps i si s'utilitza per a crear un objecte que contingui l'hora local, aquest objecte representarà l'equivalent al temps local.
  • Alguns dels mètodes de l'objecte de JavaScript Date soporten temps en UTC (universal) i temps local. UTC, també conegut com a Greenwhich Mean Time (GMT), fa referència al temps marcat pel World Time Standard. El temps local és el temps proporcionat per l'ordinador on s'executa el JavaScript.
  • Si s'invoca la funció de JavaScript Date com una funció (és a dir, sense l'operador new), aquesta retornarà una string representant la data i hora actual.

Propietats

For properties available on Date instances, see Properties of Date instances.
Date.prototype
Permet afegir propietats a l'objecte de JavaScript Date.
Date.length
El valor de Date.length és 7. Aquest és el nombre de arguments que el constructor accepta.
Properties inherited from Function:

Mètodes

For methods available on Date instances, see Methods of Date instances.
Date.now()
Retorna el valor numèric corresponent al temps actual - el nombre de milisegons que han passat des de l'1 de gener de 1970 00:00:00 UTC.
Date.parse()
Interpreta un string que representa una data i retorna el nombre de milisegons des de l'1 de gener de 1970 00:00:00 UTC.
Date.UTC()
Accepta els mateixos paràmetres que el constructor (és a dir, de 2 a 7) i retorna le nombre de milisegons des de l'1 de gener de 1970 00:00:00 UTC.
Methods inherited from Function:

Instàncies de JavaScript Date

Totes les instàncies de Date hereten de Date.prototype. L'objecte prototipus del constructor Date pot ser modificat per a afectar a totes les instàncies de Date.

Mètodes de Date.prototype

Getter

Date.prototype.getDate()
Retorna el dia del mes (1-31) per a la data especificada, en temps local.
Date.prototype.getDay()
Retorna el dia de la setmana (0-6) per a la data especificada, en temps local.
Date.prototype.getFullYear()
Retorna l'any (4 digits per a anys de 4 digits) per a la data especificada, en temps local.
Date.prototype.getHours()
Retorna l'hora (0-23) per a la data especificada, en temps local.
Date.prototype.getMilliseconds()
Retorna els milisegons (0-999) per a la data especificada, en temps local.
Date.prototype.getMinutes()
Retorna els minuts (0-59) per a la data especificada, en temps local.
Date.prototype.getMonth()
Retorna el mes (0-11) per a la data especificada, en temps local.
Date.prototype.getSeconds()
Retorna els segons (0-59) per a la data especificada, en temps local.
Date.prototype.getTime()
Retorna un valor numèric per a la data especificada que representa la data especificada com al nombre de milisegons que han passat des de l'1 de gener de 1970, 00:00:00 UTC (negatiu per a dates anteriors).
Date.prototype.getTimezoneOffset()
Retorna la diferència d'ús horari en minuts del temps local.
Date.prototype.getUTCDate()
Retorna el dia del mes (1-31) per a la data especificada en temps universal (UTC).
Date.prototype.getUTCDay()
Retorna el dia de la setmana (0-6) per a la data especificada en temps universal (UTC).
Date.prototype.getUTCFullYear()
Retorna l'any (4 digits per a anys de 4 digits) per a la data especificada en temps universal (UTC).
Date.prototype.getUTCHours()
Retorna l'hora (0-23) per a la data especificada en temps universal (UTC).
Date.prototype.getUTCMilliseconds()
Retorna els milisegons (0-999) per a la data especificada en temps universal (UTC).
Date.prototype.getUTCMinutes()
Retorna els minuts (0-59) per a la data especificada en temps universal (UTC).
Date.prototype.getUTCMonth()
Retorna el mes (0-11) per a la data especificada en temps universal (UTC).
Date.prototype.getUTCSeconds()
Retorna els segons (0-59) per a la data especificada en temps universal (UTC).
Date.prototype.getYear()
Retorna l'any (normalment 2-3 digits) per a la data especificada, en temps local. En comptes d'aquest mètode, utilitzeu  getFullYear().

Setter

Date.prototype.setDate()
Assigna el dia del mes per a la data especificada, en temps local.
Date.prototype.setFullYear()
Assigna l'any sencer (és a dir, de 4 digits per a un any amb 4 digits) per a la data especificada, en temps local.
Date.prototype.setHours()
Assigna l'hora per a la data especificada, en temps local.
Date.prototype.setMilliseconds()
Assigna els milisegons per a la data especificada, en temps local.
Date.prototype.setMinutes()
Assigna els minuts per a la data especificada, en temps local.
Date.prototype.setMonth()
Assigna el mes per a la data especificada, en temps local.
Date.prototype.setSeconds()
Assigna els segons per a la data especificada, en temps local.
Date.prototype.setTime()
Assigna la data que representarà la instància de l'objecte Date al temps representat pel nombre de milisegons passats des de l'1 de gener de 1970, 00:00:00 UTC. Permet nombres negatius per a temps anteriors a aquesta data.
Date.prototype.setUTCDate()
Assigna el dia del mes per a la data especificada en temps universal (UTC).
Date.prototype.setUTCFullYear()
Assigna l'any sencer (és a dir, 4 digits per a anys de 4 digits) per a la data especificada en temps universal (UTC).
Date.prototype.setUTCHours()
Assigna l'hora per a la data especificada en temps universal (UTC).
Date.prototype.setUTCMilliseconds()
Assigna els milisegons per a la data especificada en temps universal (UTC).
Date.prototype.setUTCMinutes()
Assigna els minuts per a la data especificada en temps universal (UTC).
Date.prototype.setUTCMonth()
Assigna el mes per a la data especificada en temps universal (UTC).
Date.prototype.setUTCSeconds()
Assigna els segons per a la data especificada en temps universal (UTC).
Date.prototype.setYear()
Assigna l'any (normalment 2-3 digits) per a la data especificada en temps local. Utilitzeu setFullYear() en comptes d'aquest mètode.

Getters amb conversió

Date.prototype.toDateString()
Retorna la part part de data de Date com a string inteligible per humans.
Date.prototype.toISOString()
Converteix una data a un string seguint el Format Extés del ISO 8601.
Date.prototype.toJSON()
Retorna un string que representa l'objecte Date utilitzant  toISOString(). Ideat per a ser usat per JSON.stringify().
Date.prototype.toGMTString()
Retorna un string que representa l'objecte Date basat en la zona horària GMT (UT). Utilitzeu toUTCString() en comptes d'aquest mètode.
Date.prototype.toLocaleDateString()
Retorna un string que representa la part de la data amb temps local, basat en la configuració del sistema.
Date.prototype.toLocaleFormat()
Converteix una data a string tot utilitzant un format string.
Date.prototype.toLocaleString()
Retorna un string que representa la data tenint en compte el temps local. Sobreescriu el mètode Object.prototype.toLocaleString().
Date.prototype.toLocaleTimeString()
Retorna un string que representa la part de temps de la data local basada en la configuració del sistema.
Date.prototype.toSource()
Retorna un string que representa el codi font per a un objecte Date equivalent; aquest valor pot emprar-se per a crear un nou objecte. Sobreescriu el mètode Object.prototype.toSource().
Date.prototype.toString()
Retorna un string que representa l'objecte Date especificat. Sobreescriu el mètode Object.prototype.toString().
Date.prototype.toTimeString()
Retorna la part de temps de l'objecte Date com a string comprensible per humans.
Date.prototype.toUTCString()
Converteix una data a un string utilitzant la zona horària UTC.
Date.prototype.valueOf()
Retorna el valor primitiu d'un objecte Date. Sobreescriu el mètode Object.prototype.valueOf().

Exemples

Exemple: Vàries formes de crear un objecte de tipus Date

Els següents exemples mostren diverses maneres de crear dates a JavaScript:

var today = new Date();
var birthday = new Date('December 17, 1995 03:24:00');
var birthday = new Date('1995-12-17T03:24:00');
var birthday = new Date(1995, 11, 17);
var birthday = new Date(1995, 11, 17, 3, 24, 0);

Exemple: Dos dígits per representar els anys 1900 a 1999

Per a crear i obtindre dates entre els anys 0 i 99 es recomana emprar els mètodes Date.prototype.setFullYear() i Date.prototype.getFullYear().

var date = new Date(98, 1); // Sun Feb 01 1998 00:00:00 GMT+0000 (GMT)

// Deprecated method, 98 maps to 1998 here as well
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)

Exemple: Calcular el temps passat

Els exemples següents mostren com determinar el temps passat entre dues dates a JavaScript:

// utilitzant objectes Date
var start = Date.now();

// L'event a cronometra va aquí:
doSomethingForALongTime();
var end = Date.now();
var elapsed = end - start; // temps transcorregut en milisegons
// utilitzant mètodes que formen part del sistema
var start = new Date();

// the event to time goes here:
doSomethingForALongTime();
var end = new Date();
var elapsed = end.getTime() - start.getTime(); // temps transcorregut en milisegons
// cronometra una funció i retorna el que retorni
function printElapsedTime(fTest) {
  var nStartTime = Date.now(),
      vReturn = fTest(),
      nEndTime = Date.now();

  console.log('Temps transcorregut: ' + String(nEndTime - nStartTime) + ' miliseconds');
  return vReturn;
}

yourFunctionReturn = printElapsedTime(yourFunction);

Nota: En navegadors que suporten la característica de temps en alta resolució de la API d'Alt Rendiment Web, Performance.now() pot proporcionar mesures de temps més concises i fiables pel temps transcorregut que Date.now().

Especificacions

Especificació Estat Comentaris
ECMAScript 1a Edició. Standard Definició inicial. Implementat a JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
The definition of 'Date' in that specification.
Standard  
ECMAScript 6 (ECMA-262)
The definition of 'Date' in that specification.
Release Candidate  

Compatibilitat amb navegadors

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes)
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Informes de compatiblitat amb navegadors

Notes específiques de Internet Explorer

Internet Explorer 8 no suporta el format de dates ISO8601.

Document Tags and Contributors

 Contributors to this page: teoli, enTropy
 Last updated by: teoli,