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

I need to make Date format from string javascript

本文关键字:日期 格式 javascript 字符串      更新时间:2023-09-26

我有一个字符串,比如

15 2月, 2016

现在我要2016,02,15

您可以使用日期函数

var d = new Date("15 Feb, 2016");
alert(d.getFullYear()+","+(d.getMonth()+1)+"," + d.getDate());

你可以看看像Moment这样的库来简化这个过程。然后,此代码将按照您的要求对其进行格式化:

var myDate = "15 Feb, 2016";
moment(myDate, "DD MMM, YYYY").format("YYYY,MM,DD")

你可以在另一个答案中看到如何使用纯javascript来做到这一点,但是Moment将为您节省一些工作,并且如果您决定以后想要不同的东西,也可以轻松更改最终格式。

您可以创建一个日期实例,然后像这样使用它...

var date = new Date('15 Feb, 2016');
var dateString = date.getFullYear() + ', ' + (date.getMonth() + 1) + ', ' + date.getDate();

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

时刻日期格式

首先需要将此字符串解析为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()) );

虽然确实需要分析字符串,但无需创建 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'));