2

我有一个字符串Feb 2012。我怎样才能将其转换为FEBRUARY 2012. 实际上我有一个完整的数组['Jan 2011', 'Feb 2011', 'Mar 2011', ... ]我需要转换每个元素并得到['JANUARY 2011', ...]

4

5 回答 5

7

假设字符串始终格式化为 '{monthShortForm} {year}',您可以执行以下操作:

var input = 'Jan 2011';
var parts = input.split(' ');
var output = longForm[parts[0].toLowerCase()] + ' ' + parts[1];

longForm 是这样的地图

longForm = { 'jan': 'JANUARY', 'feb': 'FEBRUARY', /* etc */ };

希望有帮助。

于 2012-11-23T09:46:15.220 回答
1
var dt = new Date("Feb 2012"), // FEBRUARY 2012
    m_names = ["JANUARY", "FEBRUARY", "March", 
"April", "May", "June", "July", "August", "September", 
"October", "November", "December"];

var curr_month = dt.getMonth(),
    curr_year = dt.getFullYear();

console.log(m_names[curr_month] + " " + curr_year);
于 2012-11-23T09:51:19.630 回答
0

使用 jQuery 试试这个:

var arr = ["Jan 2011", "Feb 2011", "Mar 2011"];
var name = ["JANUARY", "FEBRUARY", "MARCH"];
var list = new Array();

// Loop through the array arr
$.each(arr, function(i, value) {

    // Convert the month names
    var month = name[i];
    var year = value.split(" ")[1];

    // Display the result
    alert(month + ' ' + year);  

    // Add elements to a new array
    list.push(month + ' ' + year);
});​

console.log(list);

控制台结果:

["JANUARY 2011", "FEBRUARY 2011", "MARCH 2011"]

希望这可以帮助!

于 2012-11-23T11:51:17.587 回答
0
var myDate = new Date(Date.parse("Mar 2012"));
var monthNum = myDate.getMonth();
var year = myDate.getFullYear();

现在把monthNum变成一个字符串。我建议使用 12 个字符串的数组,并使用 array[monthNum] 来获得正确的字符串。

于 2012-11-23T09:49:39.993 回答
0

如果您要在您的应用程序中进行其他基于时间和日期的操作,我建议您使用 Moment.js (http://momentjs.com/)。这是一个非常强大的库——如果这就是你需要做的所有事情,可能有点太多了——但无论如何都值得研究。

要使用 Moment.js 回答您的问题,这是您需要的代码段:

moment('Feb 2011', 'MMM YYYY').format('MMMM YYYY').toUpperCase();
// FEBRUARY 2011
于 2012-11-23T10:26:20.317 回答