Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Formatar datas com Zero na frente

Olá, dessa maneira a data esta sendo impressa "1/1/2000", como seria para retornar "01/01/2000" com o zero na frente dos números < 10 ?

6 respostas

Oi, Santi, tudo bem?

Aqui vai um exemplo de como acrecentar o 0 antes dos meses e dias menores que que 10, http://jsfiddle.net/xA5B7/

Bons estudos !

O que seria esse slice ?

solução!

Você pode usar o método slice(). Esse método retorna uma fatia (em inglês, slice) de uma string ou array.

Inserindo um número negativo no parâmetro faz retornar os dígitos contando a partir do fim, por exemplo:

"000031".slice(-2); // retorna "31"
"09".slice(-2); // retorna "09"

Aplicando na data - para sempre mostrar dois dígitos - concatene o 0 no dia, mês, hora, minuto, etc e depois aplique o .slice(-2), dessa forma:

let data = new Date();
let diaHoje = ("0" + data.getDate()).slice(-2);
let mesHoje = ("0" + (data.getMonth() + 1)).slice(-2);
let anoHoje = data.getFullYear();

hoje = diaHoje + '/' + mesHoje + '/' + anoHoje;

Pegando o exemplo do curso de JavaScript: Conhecendo o Browser e padrões de projeto, onde temos na classe DateHelper o seguinte método estático static dataParaTexto(data), uma solução que encontrei seria a solução abaixo:

static dataParaTexto(data) { return ${('0' + data.getDate()).slice(-2)}/${('0' + data.getMonth()+1).slice(-2)}/${data.getFullYear()}; }

Att,

Obrigado a todos.

Olá, quero fazer uma correção no return pois quando o mês é 10,11 ou 12, esta retornando errado. Segue o return correto:

return ${('0' + data.getDate()).slice(-2)}/${('0' + (parseInt(data.getMonth())+1)).slice(-2)}/${data.getFullYear()};

Obrigado.