将月份号转换为名称

时间:2017-01-08 04:12:21

标签: javascript date

我需要更改从数据库中检索到的月份数,并将其转换为月份名称。月号被放入一个数组中,成为阵列世界的新手我不知道替换它的最佳方法是什么。

The array result once retrieved from database

        var monthNames = ["January", "February", "March", "April", "May", "June",
                        "July", "August", "September", "October", "November", "December"];
        var month = [];
        var caseidnum = [];

        for(var i in data) {
            month.push(data[i].Month);
            caseidnum.push (data[i].Num);   
        }

3 个答案:

答案 0 :(得分:1)

您应该使用data[i].Month(-1,如果data[i].Month从1到12)作为monthNames数组的索引。

替换它:

month.push(data[i].Month);

by:

month.push(monthNames[data[i].Month - 1]);

答案 1 :(得分:1)

创建对象数组的方法最有意义,特别是如果您认为可能需要短月和长月名称:

var monthNames = [{longName:" January&#34 ;, shortName:" Jan" },...,{longName:" 12月",短名称:" 12月" }];

出于输出目的,您可以查找一个月,例如monthNames[i].longName

否则,字符串数组也会起作用。

一般情况下,月份从0到11 ......如果你的运行1到12,你可能需要调整一个。

答案 2 :(得分:1)

在编写for循环以迭代数据数组中的对象时,你是正确的,但是为了得到月份名称,你不能只索引原始数据数组。原始数据数组不包含月份名称。您必须将monthNames数组编入索引:

for(var i in data) {
     month.push(monthNames[data[i].Month - 1]); 
}

使用数组方法Maparrow函数的替代解决方案更简洁一些。

data.map((x) => month.push(monthNames[x.Month - 1]));