Pergunta

Estou tentando obter o mês atual e depois colocar o mês dentro de uma div.

function checkmaand()
{
var datum = new Date();
var maand = datum.getMonth();
switch (maand)
{   
    case 0: document.getElementById("maand").innerHTML = "Januari";
    case 1: document.getElementById("maand").innerHTML = "Februari";
    case 2: document.getElementById("maand").innerHTML = "Maart";
    case 3: document.getElementById("maand").innerHTML = "April";
    case 4: document.getElementById("maand").innerHTML = "Mei";
    case 5: document.getElementById("maand").innerHTML = "Juni";
    case 6: document.getElementById("maand").innerHTML = "Juli";
    case 7: document.getElementById("maand").innerHTML = "Augustus";
    case 8: document.getElementById("maand").innerHTML = "September";
    case 9: document.getElementById("maand").innerHTML = "Oktober";
    case 10: document.getElementById("maand").innerHTML = "November";
    case 11: document.getElementById("maand").innerHTML = "December";
}
}

Mas, por algum motivo, a produção é dezembro (é novembro agora para as pessoas no futuro)

Então, minha pergunta é por que isso faz isso e como posso consertar?

Mais uma coisa: tenho que fazer isso com JavaScript.

Foi útil?

Solução 4

switch (expr) {
  case "Oranges":
    document.write("Oranges are $0.59 a pound.<br>");
    break;
  case "Apples":
    document.write("Apples are $0.32 a pound.<br>");
    break;

No exemplo de Hc_ .

O intervalo é opcional, mas como a explicação mostrará:

A declaração de interrupção opcional associada a cada rótulo de caso garante que o programa sai do Switch assim que a instrução correspondente for executada e continue a execução na declaração seguindo o switch. Se o intervalo for omitido, o programa continua a execução na próxima declaração na declaração do interruptor.

Outras dicas

Você tem que adicionar um break; No final de todos os casos, para que não continue para o próximo.

function checkmaand()
{
var datum = new Date();
var maand = datum.getMonth();
switch (maand)
{   
    case 0: document.getElementById("maand").innerHTML = "Januari";
        break;
    case 1: document.getElementById("maand").innerHTML = "Februari";
        break;
   ...
}
}

e assim por diante

Você está perdendo o "intervalo" no final de cada caso.

Como outros mencionaram, o problema é porque você esqueceu de adicionar um break; No final de cada uma das declarações do seu caso.

Como sugestão, você pode simplificar seu código como isto:

function checkmaand() {
    document.getElementById("maand").innerHTML = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][new Date().getMonth()];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top