Pegar o primeiro dia do mês atual com JavaScript

Neste artigo você vai aprender a pegar o primeiro dia do mês atual com JavaScript, vamos utilizar o objeto Date para isso

Pegar o primeiro dia do mês atual com JavaScript capa

Fala programador(a), beleza? Bora aprender mais sobre datas em JavaScript!

Para resolver o nosso problema vamos utilizar o objeto Date e seus métodos

Os necessários serão:

  • getFullYear: ano atual;
  • getMonth: mês atual;
  • toLocaleDateString: formatar data;

Vamos criar uma data atual a partir da instância do objeto Date

Depois vamos utilizar os métodos descritos acima para gerar a data passada, o primeiro dia do mês

E por fim formatamos ele com o toLocaleDateString, esta parte é opcional

Veja um exemplo de código:

const date = new Date();

const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);

const firstDayDate = firstDay.toLocaleDateString()

console.log(firstDayDate) // "01/08/2022"
Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Desta forma geramos o primeiro dia do mês atual

Podemos utilizar uma lógica semelhante para pegar o último dia do mês atual com JavaScript, veja:

const date = new Date();

const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);

const lastDayDate = lastDay.toLocaleDateString()

console.log(lastDayDate) // "31/08/2022"

Só alteramos os parâmetros do segundo new Date

Lembrando que cada new Date gera uma nova data, a primeira é a atual e a segunda a data final do mês

E assim temos estas duas opções que você pode utilizar 🙂

Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:

Conclusão

Neste artigo você viu como pegar o priemiro dia do mês atual com JavaScript

Utilizamos o objeto Date e seus métodos para isso

Concluimos gerando uma data formatada no nosso padrão

Deseja programar de forma profissional? Confira o nosso treinamento completo clicando aqui.

Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!

Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!

Por que o getMonth começa no zero?

Antes de sair codando, se liga num detalhe que pega muita gente

O getMonth do JavaScript não conta o mês de 1 a 12, ele conta de 0 a 11

Ou seja, janeiro é 0, fevereiro é 1, e dezembro é 11

É como se a contagem começasse do zero, igual a índice de array

Por isso, pra montar o primeiro dia, a gente passa o getMonth direto (ele já vem no valor certo do mês atual) e o dia como 1

Já me ferrei uma vez somando +1 sem necessidade e caindo no mês errado, então tome cuidado com isso

Como pegar o primeiro dia do mês no formato ISO (AAAA-MM-DD)?

O toLocaleDateString gera a data no padrão brasileiro (dd/mm/aaaa), mas muita hora tu precisa dela no formato ISO, tipo pra mandar numa API ou salvar no banco

Dá vontade de usar o toISOString e resolver rápido, porém cuidado: ele converte pra UTC e, dependendo do fuso, pode voltar o dia

O jeito seguro é montar a string na mão, sem depender de fuso:

const date = new Date();

const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);

const ano = firstDay.getFullYear();

const mes = String(firstDay.getMonth() + 1).padStart(2, ‘0’);

const dia = String(firstDay.getDate()).padStart(2, ‘0’);

const iso = ${ano}-${mes}-${dia};

console.log(iso) // "2022-08-01"

Repara que aqui a gente soma +1 no getMonth só pra montar o texto (lembra que ele começa no 0?) e usa padStart pra garantir os dois dígitos

E se eu quiser o primeiro dia de um mês específico?

Até aqui a gente pegou sempre o mês atual, mas dá pra apontar pra qualquer mês, é só passar o ano e o mês na mão

Lembrando da regra do zero: janeiro é 0 e dezembro é 11

const ano = 2022;

const mes = 11; // dezembro, porque a contagem começa no 0

const primeiroDia = new Date(ano, mes, 1);

console.log(primeiroDia.toLocaleDateString()) // "01/12/2022"

Mesma lógica de sempre, só que agora tu escolhe o mês em vez de usar o getMonth da data atual

Perguntas frequentes

Como pegar o último dia do mês com JavaScript?

Tu usa o mesmo new Date, mas passa o mês seguinte (getMonth + 1) e o dia 0, que o JavaScript entende como o último dia do mês anterior

O getMonth retorna 1 a 12?

Não, ele retorna de 0 a 11, então janeiro é 0 e dezembro é 11

Como formatar a data no padrão brasileiro?

É só chamar o toLocaleDateString na data gerada, que ele devolve no formato dd/mm/aaaa

Leia também

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares