Pregunta

Estoy tratando de obtener el mes actual y luego poner el mes dentro de un 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";
}
}

Pero por alguna razón, la producción es diciembre (es noviembre ahora para las personas en el futuro)

Entonces, mi pregunta es por qué hace eso y cómo puedo solucionarlo.

Una cosa más: tengo que hacerlo con JavaScript.

¿Fue útil?

Solución 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;

En el ejemplo de HC_ .

El descanso es opcional pero como se mostrará la explicación:

La declaración de ruptura opcional asociada con cada etiqueta de caso asegura que el programa salga fuera del interruptor una vez que se ejecuta la instrucción coincidente y continúa la ejecución en la declaración siguiente. Si se omite el descanso, el programa continúa la ejecución en la siguiente declaración en la instrucción Switch.

Otros consejos

Tienes que agregar un break; Al final de todos los casos para que no continúe al siguiente.

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;
   ...
}
}

y así

Te estás perdiendo el "descanso" al final de cada caso.

Como otros han mencionado, el problema es porque olvidó agregar un break; Al final de cada una de sus declaraciones de caso.

Como sugerencia, puede simplificar su código como este:

function checkmaand() {
    document.getElementById("maand").innerHTML = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][new Date().getMonth()];
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top