--- title: Date slug: Web/JavaScript/Referencia/Objectes_globals/Date translation_of: Web/JavaScript/Reference/Global_Objects/Date ---
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.
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 {{jsxref("Operators/new", "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.
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({{jsxref("Date.UTC()", "Date.UTC(...)")}})
amb aquests arguments.
valor
dataString
any
mes
dia
hora
minut
segon
milisegons
Date
i l'inicialitza amb l'hora actual proporcionada pel sistema.Date
és de -100.000.000 dies a 100.000.000 dies relatius a l'1 de gener de 1970 UTC.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.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.Date
com una funció (és a dir, sense l'operador {{jsxref("Operators/new", "new")}}), aquesta retornarà una string representant la data i hora actual.Date
.Date.length
Date.length
és 7. Aquest és el nombre de arguments que el constructor accepta.Date
Totes les instàncies de Date
hereten de {{jsxref("Date.prototype")}}. L'objecte prototipus del constructor Date
pot ser modificat per a afectar a totes les instàncies de Date
.
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);
Per a crear i obtindre dates entre els anys 0 i 99 es recomana emprar els mètodes {{jsxref("Date.prototype.setFullYear()")}} i {{jsxref("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)
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 {{domxref("window.performance", "API d'Alt Rendiment Web", "", 1)}}, {{domxref("Performance.now()")}} pot proporcionar mesures de temps més concises i fiables pel temps transcorregut que {{jsxref("Date.now()")}}.
Especificació | Estat | Comentaris |
---|---|---|
ECMAScript 1a Edició. | Standard | Definició inicial. Implementat a JavaScript 1.1. |
{{SpecName('ES5.1', '#sec-15.9', 'Date')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES6', '#sec-date-objects', 'Date')}} | {{Spec2('ES6')}} |
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Característica | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suport bàsic | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
toISOString
/fromISOString
/Native Date.parse
Internet Explorer 8 no suporta el format de dates ISO8601.