我有一个日期数组,格式为:
dates_arr = [
Thu Aug 13 2020 00:00:00 GMT-0400 (Eastern Daylight Time),
Fri Aug 14 2020 00:00:00 GMT-0400 (Eastern Daylight Time),
Sat Aug 15 2020 00:00:00 GMT-0400 (Eastern Daylight Time),
Sun Aug 16 2020 00:00:00 GMT-0400 (Eastern Daylight Time)
]
我想将所有日期转换为MM/DD/YYYY
格式,并用它们替换数组。
我想将所有日期转换为
MM/DD/YYYY
格式替换阵列。
您可以按照以下方式进行操作-
正确的代码-
let dates_arr = [
'Thu Aug 13 2020 00:00:00 GMT-0400 (Eastern Daylight Time)',
'Fri Aug 14 2020 00:00:00 GMT-0400 (Eastern Daylight Time)',
'Sat Aug 15 2020 00:00:00 GMT-0400 (Eastern Daylight Time)',
'Sun Aug 16 2020 00:00:00 GMT-0400 (Eastern Daylight Time)'
];
dates_arr = dates_arr.map((element) => {
var d = new Date(element);
return `${d.getMonth()+1}/${d.getDate()}/${d.getFullYear()}`;
})
console.log("Dates in the format MM/DD/YYYY : n", dates_arr);
说明:
-
dates_arr
中的字符串是Javascript输出日期的默认方式。我们获取这些字符串中的每一个,并使用map()
函数在dates_arr
上进行映射,然后简单地以所需格式返回日期。这将创建一个新的数组,其中包含我们需要的形式的日期字符串。 -
首先,我使用
new Date(element)
在代码中创建一个日期对象。Date()
构造函数可以接收日期字符串并形成日期对象,我们可以在其上应用JS提供的各种内置方法,如下所示。 -
数据为我们提供了不同的方法,如
getMonth()
,返回0-11的月份getDate()
,返回1-31中的月份日期getFullYear()
,返回日期中的年份
我使用了这些方法将日期字符串转换为所需的格式。还有各种其他方法,你可以在这里阅读更多。
-
此外,如果您不知道的话,我在return语句中使用了模板文字,这只是ES6中添加的语法糖。return语句的作用与-相同
return ((d.getMonth()+1) + '/' + d.getDate() + '/' + d.getFullYear())
但使用模板文字只是编写此类语句的一种更有效的方式。
var formattedDate = dates_arr.map(date=>dateFormat(date));
function dateFormat(date){
const dateTimeFormat = new Intl.DateTimeFormat('en', { year: 'numeric', month: 'short', day: '2-digit' })
const [{ value: month },,{ value: day },,{ value: year }] = dateTimeFormat .formatToParts(date )
return `${month}/${day}/${year}`
}