我需要从字符串javascript制作日期格式

时间:2016-02-10 09:42:08

标签: javascript string date

我有一个像

这样的字符串
  

2016年2月15日

现在我想要2016,02,15

5 个答案:

答案 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();

还有一些库可以帮助其他格式:

MomentJS date.format

答案 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解析它相同,但格式化输出字符串要简单得多:

&#13;
&#13;
// 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;
&#13;
&#13;