我有一个像
这样的字符串2016年2月15日
现在我想要2016,02,15
答案 0 :(得分:3)
您可以使用日期功能
var d = new Date("15 Feb, 2016");
alert(d.getFullYear()+","+(d.getMonth()+1)+"," + d.getDate());
答案 1 :(得分:2)
您可以查看Moment之类的图书馆,以便更轻松。然后,此代码将根据您的需要格式化:
var myDate = "15 Feb, 2016";
moment(myDate, "DD MMM, YYYY").format("YYYY,MM,DD")
你可以在另一个答案中看到如何使用纯JavaScript进行操作,但是Moment会为你节省一些工作,并且如果你以后想要一些不同的东西,也可以很容易地改变你的最终格式。
答案 2 :(得分:1)
您可以创建一个日期实例,然后像这样使用它......
var date = new Date('15 Feb, 2016');
var dateString = date.getFullYear() + ', ' + (date.getMonth() + 1) + ', ' + date.getDate();
还有一些库可以帮助其他格式:
答案 3 :(得分:0)
首先需要将此字符串解析为Date
对象
var strDate = "15 Feb, 2016";
var months = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
var dateFields = strDate.split( " " ).map( function(value){ if ( value.indexOf( "," ) != -1){ return value.substring(0, value.length - 1); } return value; } );
var date = new Date();
date.setDate(dateFields[0]);
date.setMonth(months.indexOf(dateFields[1]));
date.setFullYear( dateFields[2] );
现在您可以以任何您想要的格式显示它
alert( date.getFullYear() + "," + (date.getMonth() + 1) + "," + date.getDate() );
如果它们是单个数字,则仅以单个数字给出值,因此请使用此方法进行填充
function pad(var value) {
if(value < 10) {
return '0' + value;
} else {
return value;
}
}
alert( date.getFullYear() + "," + pad(date.getMonth() + 1) + "," + pad(date.getDate()) );
答案 4 :(得分:0)
虽然您确实需要解析字符串,但不需要创建Date对象。您需要做的就是获取部件,将月份名称映射到数字并写入格式化的字符串。
解析部分与为Date解析它相同,但格式化输出字符串要简单得多:
// Reformat date string like d mmm, y to y, m, d
function reformatDateString(s) {
var months = {jan:'01',feb:'02',mar:'03',apr:'04',may:'05',jun:'06',
jul:'07',aug:'08',sep:'09',oct:'10',nov:'11',dec:'12'};
var b = s.match(/\w+/g);
return b && b[2] + ',' + months[b[1].toLowerCase()] + ',' + b[0];
}
document.write(reformatDateString('15 Feb, 2016'));
&#13;