代码之家  ›  专栏  ›  技术社区  ›  peaceduck

Javascript-将数字转换为月份名称

  •  16
  • peaceduck  · 技术社区  · 8 年前

    我有一个非常简单的问题,但由于某种原因,我找不到答案。

    label.forEach(function(value){
        months.push(value['month']);
        revenue.push(value['revenue']);
    });
    

    这个 label 是一个数字和收入的数组,在我的例子中是

    [
    {month: 9, revenue: 400}, 
    {month: 11, revenue: 500},
    {month: 12, revenue: 600}
    ]
    

    这是javascript中的forEach循环,它将revenue和月数推送到两个单独的数组中,问题是月是一个数字(例如12),但我想要。push()改为推一个月名(12月),我似乎找不到任何东西,所以我希望这里的任何人都能帮助我。

    5 回复  |  直到 7 年前
        1
  •  16
  •   Oğuz    8 年前
    var months = [ "January", "February", "March", "April", "May", "June", 
               "July", "August", "September", "October", "November", "December" ];
    
    var selectedMonthName = months[value['month']];
    

    查看链接

    stack 1

        2
  •  7
  •   praisegeek Viktor Gusev    4 年前
    Intl.DateTimeFormat('en', { month: 'long' }).format(new Date('1')); // January
    

    可通过以下方式实现 Internationalization API

        3
  •  6
  •   Dineth Cooray    8 年前

    这可以很容易地用力矩来完成。js。

    var months = [];
    months.push(moment().month(0).format("MMMM"));
    console.log(months);
    <script src="https://momentjs.com/downloads/moment.min.js"></script>
        4
  •  0
  •   Arslan Nawaz    6 年前
        <script src="https://momentjs.com/downloads/moment.min.js"></script>
    
        var monthNumber='03';
        var month = [ "January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December" ];
        var monthIndex = moment().month(monthNumber[1]-1).format("M");
        var selectedMonthName = month[monthIndex-1];
        alert(selectedMonthName);
    
        5
  •  -1
  •   john mason    5 年前

    另一种简单的方法是使用地图,创建一个这样的地图

    const monthNumberToLabelMap = {
      [1]: 'January',
      [2]: 'February',
      [3]: 'March',
      [4]: 'April',
      [5]: 'May',
      [6]: 'June',
      [7]: 'July',
      [8]: 'August',
      [9]: 'September',
      [10]: 'October',
      [11]: 'November',
      [12]: 'December',
    }
    

    然后像这样在代码中使用映射

    label.forEach(function(value){
        months.push(monthNumberToLabelMap[value['month']]);
        revenue.push(value['revenue']);
    });
    

    注:

    从您的问题中不清楚月份数据的格式是什么,默认javascript月份为0-11,在这种情况下,您需要更改我的地图