2010-05-20 6 views

Respuesta

17
if (currentMonth < 10) { currentMonth = '0' + currentMonth; } 
+0

Gracias! Originalmente tenía 'if (currentMonth <9) {currentMonth =" 0 "+ currentMonth; } 'y no funcionó. Supongo que necesito comillas simples en lugar de dobles. –

+0

Impar ... ¡el tipo de presupuesto no debería importar! Tal vez un artefacto de tipo coerción y el operador '+' .. – Matt

+1

Quiere '<10 'else 9 no devolverá' 09 ' –

47

Una forma alternativa:

var currentMonth=('0'+(currentDate.getMonth()+1)).slice(-2) 
+1

+1 porque te copié por una parte de mi respuesta. – eyelidlessness

+1

+1 por elegancia –

+0

¡Gracias chicos! :) –

0

A fin de que la respuesta aceptada para devolver una cadena constante, se debería ser:

if(currentMonth < 10) { 
    currentMonth = '0' + currentMonth; 
} else { 
    currentMonth = '' + currentMonth; 
} 

O:

currentMonth = (currentMonth < 10 ? '0' : '') + currentMonth; 

Sólo por funsies, aquí es una versión sin un condicional:

currentMonth = ('0' + currentMonth).slice(-2); 

Editar: cambió a slice, por la respuesta de Gert G, el crédito a quien crédito merece; substr trabaja demasiado, no me daba cuenta que acepta un argumento negativo start

0

de la fecha:

("0" + this.getDate()).slice(-2) 

y similar para el mes: solución

("0" + (this.getMonth() + 1)).slice(-2) 
3

Una línea:

var currentMonth = (currentDate.getMonth() < 10 ? '0' : '') + currentDate.getMonth(); 
0
var CurrentDate = new Date(); 
    CurrentDate.setMonth(CurrentDate.getMonth()); 

    var day = CurrentDate.getDate(); 
    var monthIndex = CurrentDate.getMonth()+1; 
    if(monthIndex<10){ 
     monthIndex=('0'+monthIndex); 
    } 
    var year = CurrentDate.getFullYear(); 

    alert(monthIndex); 
0

ES6 versión inpired por @ Gert-Grenander

let date = new Date(); 
let month = date.getMonth() +1; 
month = (`0${month}`).slice(-2); 
Cuestiones relacionadas