我有日期2013-03-10
我怎样才能得到March 10,2013
.我在javascript中使用Date函数尝试了很多,但无法获得上面给出的正确格式。应该感谢帮助。
您可以使用
Date.toLocaleString:
var options = { month: 'long', day: 'numeric', year: 'numeric' }
console.log( new Date('2013-03-10').toLocaleString('en-US', options) )
我将回答这个问题,只是因为我想分享的是,如果您只需要支持这两种格式,则没有必要使用 Date
对象或像 MomentJS 这样的繁重库。
解决方案基本上是这样的:
- 准备月份编号和月份名称之间的映射。
- 将 YYYY-MM-DD 格式的输入日期分解为单独的组件(例如,用"-"拆分(
- 从步骤 1 中构建的地图中获取月份名称。
- 使用简单的字符串插值以目标格式重建日期。
像这样:
var MONTH_NAMES = {
1: 'January',
2: 'February',
3: 'March',
....
};
function convertDateFormat(inputDate) {
var components = inputDate.split('-');
var year = components[0];
var month = MONTH_NAMES[components[1]];
var day = components[2];
return month + ' ' + day + ', ' + year;
}
convertDateFormat('2013-03-10');