2010-05-20 6 views

Répondre

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

Merci! J'avais à l'origine 'if (currentMonth <9) {currentMonth =" 0 "+ currentMonth; } 'et ça n'a pas marché. Je suppose que j'ai besoin de guillemets simples au lieu de doubles. –

+0

Odd .. le type de citation ne devrait pas importer! Peut-être un artefact de type coercition et l'opérateur '+ '.. – Matt

+1

Vous voulez' <10' sinon 9 wont retourner' 09 ' –

47

Une autre façon:

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

+1 parce que je vous ai copié pour une partie de ma réponse. – eyelidlessness

+1

+1 pour l'élégance –

+0

Merci les gars! :) –

0

Pour que la réponse acceptée pour retourner une chaîne cohérente, il devrait être:

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

Ou:

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

Juste pour funsies, voici une version sans condition:

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

Edit: commuté à slice, par la réponse de Gert G, le crédit lorsque le crédit est dû; substr fonctionne aussi, je ne savais pas qu'il accepte un argument négatif start

0

pour la date:

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

et similaire pour le mois:

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

Une solution de ligne:

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 Version inpired par @ gert-Grenander

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