我有一个看起来像这样的数组:
var myDates = ["2017-12-01 08:44:49", "2017-12-03 08:54:49", "2018-01-03 10:54:43"]
我想创建名为Moth的新数组,即
var myMonths = [
'December', 'March', 'January']
];
我如何实现这一目标?
我可以使用以下内容在一个字符串上执行此操作:
var oneMonth = "2017-12-01 08:44:49";
var str = oneMonth.substring(5,7);
var months = [
'January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September',
'October', 'November', 'December'
];
var saleMonths = months[str-1];
console.log(saleMonths);
答案 0 :(得分:5)
您可以使用toLocaleString
添加更多信息:
“long”使用月份的全名,“short”表示短名称,“narrow”表示更小的版本,例如字母语言的第一个字母。
您可以将语言环境更改为您喜欢的任何语言环境,并使用该语言/国家/地区的正确名称。
来自this回答。
var myDates = ["2017-12-01 08:44:49", "2017-12-03 08:54:49", "2018-01-03 10:54:43"]
const months = myDates.map(d => new Date(d).toLocaleString("en-us", { month: "long" }))
console.log(months)
答案 1 :(得分:1)
以下解决方案适合您。
首先,您map
超过您的日期并获得每个月。然后映射这几个月并使用索引将月份作为基于months
数组的单词。
var myDates = ["2017-12-01 08:44:49", "2017-12-03 08:54:49", "2018-01-03 10:54:43"]
var months = [
'January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September',
'October', 'November', 'December'
];
let monthWords = myDates.map(month => {
return month.substring(5, 7);
}).map(item => {
return months[parseInt(item) - 1]
});
console.log(monthWords);

答案 2 :(得分:0)
使用map
和substring
(扩展您自己的substring
逻辑)
myMonths = myDates.map( s => months[ +s.substring(5,7) - 1 ] );
var myDates = ["2017-12-01 08:44:49", "2017-12-03 08:54:49", "2018-01-03 10:54:43"];
var months = [
'January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September',
'October', 'November', 'December'
];
var myMonths = myDates.map( s => months[ +s.substring(5,7) - 1 ] );
console.log( myMonths );

答案 3 :(得分:0)
您可以对一个字符串执行对数组中所有字符串的操作。
一种简单的方法是使用map
功能。这是一个例子:
var myDates = ["2017-12-01 08:44:49", "2017-12-03 08:54:49", "2018-01-03 10:54:43"];
var months = [
'January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September',
'October', 'November', 'December'
];
var onlyMonths = myDates.map(date => {
var monthIndex = date.substr(5, 2) - 1;
return months[monthIndex];
});
console.log(onlyMonths)

答案 4 :(得分:0)
您只需要将字符串str
解析为数字,然后在months数组中搜索数字-1元素。像这样:
var oneMonth = "2017-12-01 08:44:49";
var number= parseInt(oneMonth.substring(5,7));
var months = [
'January', 'February', 'March', 'April', 'May',
'June', 'July', 'August', 'September',
'October', 'November', 'December'
];
var saleMonths = months[number-1];
console.log(saleMonths);
答案 5 :(得分:0)
这个答案使用Date
对象来解析字符串并获取月份。
然后它查找从一系列月份名称返回的月份。
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
function toMonth(dateString) {
var d = new Date(dateString);
return months[d.getUTCMonth()];
}
//TEST
var myDates = ["2017-12-01 08:44:49", "2017-12-03 08:54:49", "2018-01-03 10:54:43"];
console.log(myDates.map(function(d) {
return toMonth(d);
}));