我有一个这样的字符串: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个)。
答案 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