2017-09-18 1 views
1
month=[1,2,3,4,5,6,7,8,9] 

Ce tableau me parvient du serveur. Comment obtenir le nom du mois?Comment obtenir le nom du mois à partir du numéro de mois

Jusqu'à présent, j'ai essayé ceci:

var populateChartData = function (data) { 
    var getMonth = []; 
    var getProfit = []; 
    $scope.chartTitle = 'Year :' + moment().year(); 
    data.forEach(function (obj) { 
     console.log(obj.month); 
     getMonth.push(moment().month(obj.month).format('MMM')); 
    }); 
    console.log(getMonth); 
}; 

mais dans la console que je reçois

["Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct"] 

je devrais comme ça

["Jan","Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep"] 

Répondre

3

vous pouvez simplement créer votre propre filtre comme ceci: autrement, passer l'indice en une seule fonction et obtenir Nom Mois

myApp.filter('monthName', [function() { 
    return function (monthNumber) { //1 = January 
     var monthNames = [ 'January', 'February', 'March', 'April', 'May', 'June', 
      'July', 'August', 'September', 'October', 'November', 'December' ]; 
     return monthNames[monthNumber - 1]; 
    } 
}]); 
1

Je pense que vous devriez essayer de 0 index dans le tableau array.or pendant l'itération de ce tableau mettez -1 pour cette valeur.

2

0 correspond à Janvier, 1 à Février et ainsi de suite (de 0 à 11). Il est fait de telle sorte que l'indexation commence généralement à partir de 0. Par conséquent, du point de programmation de vue 0 est un bon choix pour Janvier

2

En nombre momentjs mois commence à 0. Vous pouvez voir cette documentation de moment

momentjs month

0

Je l'ai fait comme ci-dessous

 var populateChartData = function (data) { 
     var getMonth = []; 
     var getProfit = []; 

     data.forEach(function (obj) { 

      getMonth.push(moment().month(obj.month-1).format('MMM')); 
     }); 
     console.log(getMonth); 
    };