[ad_1]


Quase todos os aplicativos que você cria possuem algum tipo de componente de data. Pode ser a data de criação de um recurso ou o último registro de data e hora da atividade e assim por diante.

Lidar com os formatos de data e data e hora pode ser cansativo. Neste guia, você aprenderá como obter a data atual em vários formatos em JavaScript.

Objeto de data do JavaScript

JavaScript foi construído em Date objeto que armazena a data, hora e fornece métodos para manipulá-los.

Para criar uma nova instância do Date objeto, use o new palavra-chave

const date = new Date();

o Date objeto contém um Number que representa milissegundos passados ​​desde a época, ou seja, 1 de janeiro de 1970.

Você pode passar uma string de data para o Date construtor, para criar um objeto para a data especificada.

const date = new Date('Jul 12 2011');

Para obter o ano atual, use o getFullYear() método de instância do Date objeto. o getFullYear() método, retorna o ano da data especificada no Date construtor.

const currentYear = date.getFullYear();console.log(currentYear); //2020

Da mesma forma, existem métodos para obter o dia atual do mês e o mês atual.

const today = date.getDate();const currentMonth = date.getMonth() + 1; 

o getDate() O método retorna o dia atual do mês (1-31).

o getMonth() O método retorna o mês da data especificada. Um ponto a ser observado sobre o getMonth() método é que ele retorna 0 valores indexados (0-11), onde 0 é para janeiro e 11 para dezembro. Daí a adição de 1 para normalizar o valor do mês.

Data agora

o now() é um método estático do Date objeto. Ele retorna o valor em milissegundos que representa o tempo decorrido desde a época. Você pode passar os milissegundos retornados do now() método para o Date construtor para instanciar um novo objeto de data.

const timeElapsed = Date.now();const today = new Date(timeElapsed);

Formatando a data

Você pode formatar a data em vários formatos (GMT, ISO etc.) usando os métodos do Date objeto.

o toDateString() O método retorna a data em um formato legível por humanos.

today.toDateString(); // "Sun Jun 14 2020"

o toISOString() O método retorna a data que segue o formato estendido ISO 8601.

today.toISOString(); // "2020-06-13T18:30:00.000Z"

o toUTCString() O método retorna a data no formato de fuso horário UTC.

today.toUTCString(); // "Sat, 13 Jun 2020 18:30:00 GMT"

o toLocaleDateString() O método retorna a data em um formato sensível à localidade.

today.toLocaleDateString(); // "6/14/2020"

Você pode encontrar a referência completa para o Date métodos no Documentação MDN.

Função Personalizada do Formatador de Data

Além dos formatos mencionados na seção acima, seu aplicativo pode ter um formato diferente para dados. Pode estar em yy/dd/mm formato ou yyyy-dd-mm formato e da mesma forma.

Para resolver esse problema, será uma abordagem melhor criar uma função reutilizável para que possa ser usada em vários projetos.

Portanto, nesta seção, vamos criar uma função de utilitário que retornará a data no formato especificado no argumento da função.

const today = new Date();function formatDate(date, format) {	//}formatDate(today, 'mm/dd/yy');

Você precisa substituir as cadeias “mm”, “dd”, “aa” pelos respectivos valores de mês, dia e ano da cadeia de formato passada no argumento.

Para fazer isso, você pode usar o replace() método como mostrado abaixo.

format.replace('mm', date.getMonth() + 1);

Mas isso levará a um monte de encadeamento de métodos e difícil manutenção, enquanto você tenta tornar a função mais flexível.

format.replace('mm', date.getMonth() + 1)    .replace('yy', date.getFullYear())	.replace('dd', date.getDate());

Em vez de encadear métodos, você pode usar expressões regulares com o replace() método.

Primeiro, crie um objeto que representará um par de valores-chave da substring e seu respectivo valor.

const formatMap = {	mm: date.getMonth() + 1,    dd: date.getDate(),    yy: date.getFullYear().toString().slice(-2),    yyyy: date.getFullYear()};

Em seguida, use a expressão regular para corresponder e substituir as cadeias.

formattedDate = format.replace(/mm|dd|yy|yyy/gi, matched => map[matched]);

A função completa teria a seguinte aparência.

function formatDate(date, format) {    const map = {        mm: date.getMonth() + 1,        dd: date.getDate(),        yy: date.getFullYear().toString().slice(-2),        yyyy: date.getFullYear()    }    return format.replace(/mm|dd|yy|yyy/gi, matched => map[matched])}

Você também pode adicionar a capacidade de formatar carimbos de data e hora na função.

Conclusão

Espero que você tenha uma melhor compreensão do Date objeto em JavaScript. Você pode usar outras bibliotecas de terceiros como datesj, moment, etc. para lidar com datas em seu aplicativo.

Então foi isso neste guia. Até a próxima vez, mantenha-se seguro e mantenha-se apressado.

[ad_2]

Fonte