更改月份名称的月份数

时间:2018-01-08 15:44:42

标签: javascript arrays

我有一个这样的字符串:2017-12-01 08:44:49我希望从字符串中获取月份的名称。

我做了什么:

var myMonth = '2017-12-01 08:44:49';
var str = myMonth.substring(5,7);

var months = [
    'January', 'February', 'March', 'April', 'May',
    'June', 'July', 'August', 'September',
    'October', 'November', 'December'
];

我不知道如何将这个值(即12)归因于几个月(我不想在条件限制时创建12个)。

3 个答案:

答案 0 :(得分:5)

使用ECMAScript Internationalization API尝试以下操作:



var myMonth = '2017-12-01 08:44:49';
var myDate = new Date(myMonth);
var month = myDate.toLocaleString("en-us", { month: "long" });
console.log(month)




哪里"长"使用月份的全名。

答案 1 :(得分:4)

您可以将月份名称设为months[str-1],因为数组索引从0开始到length-1

var myMonth = '2017-12-01 08:44:49';
var str = myMonth.substring(5,7);

var months = [
    'January', 'February', 'March', 'April', 'May',
    'June', 'July', 'August', 'September',
    'October', 'November', 'December'
];

console.log(months[str-1]);

或者如果你不想将它存储在数组中,你可以这样做

var date = new Date("2017-12-01 08:44:49");

var monthName = new Intl.DateTimeFormat("en-US", { month: "long" }).format;
var longName = monthName(date);
console.log(longName);

答案 2 :(得分:0)

最好首先从日期字符串(myMonth)获取日期对象:

var myMonth = '2017-12-01 08:44:49';
var aDate = new Date(myMonth.substr(0, 'yyyy-mm-dd'.length)); // 2017-12-01

然后获取月份编号(0-11):

var monthNumber = aDate.getMonth();

console.log(months[monthNumber]); // December
相关问题