La fecha de Javascript devuelve el mes incorrecto si el día es 01

Estoy tratando de obtener el Mes de la cadena de fecha, esto funciona bien siempre que el día no sea el primero del mes (01). Si el día es el primero, devuelve el mes anterior:

<!DOCTYPE html>
<html>
<body>
<p>Click the button to display the month.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>

<script>
function myFunction() {
    var str="2014-12-01"
    var d = new Date(str); 
    var m = d.getMonth()+1;
    document.getElementById("demo").innerHTML = m;
}
</script>

</body>
</html>

Devoluciones: 11 Debe devolver: 12

Si la cadena de fecha era 2013-8-01, entonces se devolvería 7, cuando debería ser 8. Sin el "+1" después de "getMonth ()", se devolvería 6, en lugar de 7.

Respuestas a la pregunta(3)

Su respuesta a la pregunta