Data e hora do JavaScript

Neste tutorial, você aprenderá sobre data e hora em JavaScript com a ajuda de exemplos.

Em JavaScript, data e hora são representadas pelo Dateobjeto. O Dateobjeto fornece as informações de data e hora e também fornece vários métodos.

Uma data JavaScript define a época EcmaScript que representa milissegundos desde 1º de janeiro de 1970 UTC . Essa data e hora são iguais à época do UNIX (valor base predominante para os valores de data e hora registrados por computador).

Criação de objetos de data

Existem quatro maneiras de criar um objeto de data.

  • Nova data()
  • nova data (milissegundos)
  • nova data (string de data)
  • nova data (ano, mês, dia, horas, minutos, segundos, milissegundos)

Nova data()

Você pode criar um objeto de data usando o new Date()construtor. Por exemplo,

 const timeNow = new Date(); console.log(timeNow); // shows current date and time

Resultado

 Seg 06 de julho de 2020 12:03:49 GMT + 0545 (Horário do Nepal)

Aqui, new Date()cria um novo objeto de data com a data atual e a hora local.

nova data (milissegundos)

O Dateobjeto contém um número que representa milissegundos desde 1º de janeiro de 1970 UTC .

new Date(milliseconds)cria um novo objeto de data adicionando os milissegundos ao tempo zero. Por exemplo,

 const time1 = new Date(0); // epoch time console.log(time1); // Thu Jan 01 1970 05:30:00 // 100000000000 milliseconds after the epoch time const time2 = new Date(100000000000) console.log(time2); // Sat Mar 03 1973 15:16:40

Nota : 1000 milissegundos é igual a 1 segundo.

nova data (string de data)

new Date(date string) cria um novo objeto de data a partir de uma string de data.

Em JavaScript, geralmente existem três formatos de entrada de data.

Formatos de data ISO

Você pode criar um objeto de data passando formatos de data ISO. Por exemplo,

 // ISO Date(International Standard) const date = new Date("2020-07-01"); // the result date will be according to UTC console.log(date); // Wed Jul 01 2020 05:45:00 GMT+0545

Você também pode passar apenas o ano e o mês ou apenas o ano. Por exemplo,

 const date = new Date("2020-07"); console.log(date); // Wed Jul 01 2020 05:45:00 GMT+0545 const date1 = new Date("2020"); console.log(date1); // Wed Jul 01 2020 05:45:00 GMT+0545

Você também pode passar um tempo específico para datas ISO.

 const date = new Date("2020-07-01T12:00:00Z"); console.log(date); // Wed Jul 01 2020 17:45:00 GMT+0545

Nota : A data ea hora são separados com letra maiúscula T . E a hora UTC é definida com Z maiúsculo .

Formato de data curto e longo

Os outros dois formatos de data são o formato de data abreviada e o formato de data longo .

 // short date format "MM/DD/YYYY" const date = new Date("03/25/2015"); console.log(date); // Wed Mar 25 2015 00:00:00 GMT+0545 // long date format "MMM DD YYYY" const date1 = new Date("Jul 1 2020"); console.log(date1); // Wed Jul 01 2020 00:00:00 GMT+0545 // month and day can be in any order const date2 = new Date("1 Jul 2020"); console.log(date2); // Wed Jul 01 2020 00:00:00 GMT+0545 // month can be full or abbreviated. Also month names are insensitive. // comma are ignored const date3 = new Date("July 1 2020"); console.log(date3); // Wed Jul 01 2020 00:00:00 GMT+0545 const date4 = new Date("JULY, 1, 2020"); console.log(date4); // Wed Jul 01 2020 00:00:00

nova data (ano, mês, dia, horas, minutos, segundos, milissegundos)

new Date(year, month,… )cria um novo objeto de data passando data e hora específicas. Por exemplo,

 const time1 = new Date(2020, 1, 20, 4, 12, 11, 0); console.log(time1); // Thu Feb 20 2020 04:12:11

O argumento passado tem uma ordem específica.

Se quatro números forem passados, ele representa ano, mês, dia e horas. Por exemplo,

 const time1 = new Date(2020, 1, 20, 4); console.log(time1); // Thu Feb 20 2020 04:00:00

Da mesma forma, se dois argumentos são passados, ele representa o ano e o mês. Por exemplo,

 const time1 = new Date(2020, 1); console.log(time1); // Sat Feb 01 2020 00:00:00

Nota : Se você passar apenas um argumento, ele será tratado como milissegundos. Portanto, você deve passar dois argumentos para usar este formato de data.

Em JavaScript, os meses são contados de 0 a 11 . Janeiro é 0 e dezembro é 11 .

Métodos de data JavaScript

Existem vários métodos disponíveis no objeto JavaScript Date.

Método Descrição
agora() Retorna o valor numérico correspondente à hora atual (o número de milissegundos decorridos desde 1º de janeiro de 1970 00:00:00 UTC)
getFullYear () Obtém o ano de acordo com a hora local
getMonth () Obtém o mês, de 0 a 11 de acordo com a hora local
getDate () Obtém o dia do mês (1-31) de acordo com a hora local
getDay () Obtém o dia da semana (0-6) de acordo com a hora local
getHours () Obtém a hora de 0 a 23 de acordo com a hora local
getMinutes Gets the minute from 0 to 59 according to local time
getUTCDate() Gets the day of the month (1-31) according to universal time
setFullYear() Sets the full year according to local time
setMonth() Sets the month according to local time
setDate() Sets the day of the month according to local time
setUTCDate() Sets the day of the month according to universal time

Example: Date Methods

 const timeInMilliseconds = Date.now(); console.log(timeInMilliseconds); // 1593765214488 const time = new Date; // get day of the month const date = time.getDate(); console.log(date); // 30 // get day of the week const year = time.getFullYear(); console.log(year); // 2020 const utcDate = time.getUTCDate(); console.log(utcDate); // 30 const event = new Date('Feb 19, 2020 23:15:30'); // set the date event.setDate(15); console.log(event.getDate()); // 15 // Only 28 days in February! event.setDate(35); console.log(event.getDate()); // 7

Formatting a Date

Unlike other programming languages, JavaScript does not provide a built-in function for formatting a date.

However, you can extract individual bits and use it like this.

 const currentDate = new Date(); const date = currentDate.getDate(); const month = currentDate.getMonth(); const year = currentDate.getFullYear(); // show in specific format let monthDateYear = (month+1) + '/' + date + '/' + year; console.log(monthDateYear); // 7/3/2020

Note: The above program gives inconsistent length as date and month have single-digit and double-digit.

AutoCorrection in Date Object

When you assign out of range values in the Date object, it auto-corrects itself. For example,

 const date = new Date(2008, 0, 33); // Jan does not have 33 days console.log(date);

Output

 Sat Feb 02 2008

Para saber mais sobre a data e hora em JavaScript, visite Desmistificando data e hora.

Artigos interessantes...