我想转换字符串,例如' 2-12-2018'到2018年2月12日。我已经尝试了很多东西,但仍然没有以mmm格式向我展示这个月。
答案 0 :(得分:0)
尝试以下方法:
var date = '2-12-2018';
date = new Date(date);
var month = date.toLocaleString("en-us", { month: "short" });
var day = date.getDate();
var year = date.getFullYear();
var newDate = month+'. '+day+', ' + year
console.log(newDate);

答案 1 :(得分:0)
正如其他人指出的,对于类似问题,已有很多答案,但是由于 JavaScript日期无情地驱使我抓狂batty ,我认为可以使用这种做法。
所以这是一种解决方案:
function mddyyyy_to_mmmdyyyy(s) {
var s=s.split(/\D/),dt=new Date(s[2],s[0]-1,s[1]);
return dt.toLocaleString('en-CA', {month:'short', day:'numeric', year:'numeric'});
}
...因此,例如,您可以像这样运行它:
<div id='test'></div>
<script>
document.getElementById('test').innerHTML=mddyyyy_to_mmmdyyyy('2-12-2018');
</script>
.toLocaleString
和.split
上的文档。答案 2 :(得分:-1)
您可以使用momentjs
执行此操作var res = moment("2-12-2018").format("DD/MM/YYYY")
var now = moment(res).format('MMM. DD, YYYY');
答案 3 :(得分:-1)
您可以创建一个将字符串作为参数传递的函数,该函数从字符串创建Date对象,然后将格式化的日期作为字符串返回。如下:
var formatDate = function(datestring){
var dt = new Date(datestring);
var month = ['Jan' , 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
return (month[dt.getMonth()] +
". " + dt.getDate() +
", " + dt.getFullYear());
}
然后你只需要将它作为参数传递给任何日期字符串:
console.log(formatDate('02-12-2017'));
答案 4 :(得分:-1)
function formatDate(date) {
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
return monthNames[monthIndex]+ '.' + day + + ',' + year;
}