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

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 Claude Code
Domine Claude Code do absoluto zero até o avançado
- 114 aulas
- 4 projetos
- 9h 18min
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
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
As diferenças de var, let e const
Como redirecionar para outra página com JavaScript
Exercícios de lógica de programação JavaScript com gabarito
Quais são os melhores exercícios lógica de programação JavaScript? Colocar em prática os exercícios de lógica de programação em JavaScript é de extrema importância para […]
