Date.prototype.setMonth()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

O método setMonth() atribui o mês para uma data específica de acordo com o ano corrente.

Experimente

const event = new Date("August 19, 1975 23:15:30");

event.setMonth(3);

console.log(event.getMonth());
// Expected output: 3

console.log(event);
// Expected output: "Sat Apr 19 1975 23:15:30 GMT+0100 (CET)"
// Note: your timezone may vary

Sintaxe

dateObj.setMonth(monthValue[, dayValue])

Versões anteriores ao JavaScript 1.3

dateObj.setMonth(monthValue)

Parâmetros

monthValue

Um inteiro baseado em zero representando o mês do ano a partir do começo do ano. Então, 0 representa Janeiro, 11 representa Dezembro, -1 representa Dezembro do ano passado, e 12 representa Janeiro do ano seguinte.

dayValue

Opcional. Um inteiro de 1 a 31, representando o dia do mês.

Valor de retorno

O número de milissegundos entre dia 1 de Janeiro de 1970 00:00:00 UTC e a data atualizada.

Descrição

Se você não especifica o parâmetro dayValue, o valor retornado do método getDate() é utilizado.

Se um parâmetro que você especificou estiver fora do alcance esperado, setMonth() tenta atualizar a informação da data no objeto Date. Por exemplo, se você usa 15 para monthValue, o ano será incrementado em 1, e 3 será usado para o mês.

O dia corrente do mês terá um impacto no comportamento deste método. Conceitualmente ele irá adicionar o número de dias dado pelo dia corrente do mês ao primeiro dia do novo mês especificado como parâmetro, retornando uma nova data. Por exemplo, se o valor corrente é 31 de agosto de 2016, chamando setMonth() com um valor de 1 irá retornar 2 de Março de 2016. Isso acontece porque Fevereiro de 2016 tem 29 dias.

Exemplos

Usando setMonth()

js
var theBigDay = new Date();
theBigDay.setMonth(6);

//Cuidado com transições de final de mês
var endOfMonth = new Date(2016, 7, 31);
endOfMonth.setMonth(1);
console.log(endOfMonth); //Wed Mar 02 2016 00:00:00

Especificações

Specification
ECMAScript® 2025 Language Specification
# sec-date.prototype.setmonth

Compatibilidade com navegadores

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
setMonth

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Veja também