解析字符串日期

时间:2012-06-07 03:43:18

标签: javascript

我有span,其中包含日,月和缩写。当天:

<span>8.06 (Fr) </span>

我想解析它并以下列格式获取此日期的字符串表示: 2012年6月8日。没有年份,只需插入当年。

我该怎么做?

这是我的代码:

date = $(this).closest("li").find("span").text();
var d = new Date();
date = date + '.' + d.getFullYear(); 

它打印以下内容:8.06 (Fr) .2012
感谢。

2 个答案:

答案 0 :(得分:1)

​$(".date").text(function(i,v){
    var m = v.match(/(\d+)\.(\d+)/);
    if ( m ) {
        var date = new Date( (new Date()).getFullYear(), --m[2], m[1]);
        return date.toDateString();
    }
});​​

小提琴:http://jsfiddle.net/jonathansampson/CuDdD/

如果您想要完整的月份名称,则需要提供自己的月份数组:

var m, mo = ['January','February','March',    'April',  'May',     'June',
             'July',   'August',  'September','October','November','December'];

$(".date").text(function(i,v){
    if ( m = v.match(/(\d+)\.(\d+)/) ) {
        return m[1] + " " + mo[ --m[2] ] + " " + (new Date()).getFullYear();
    }
});​

小提琴:http://jsfiddle.net/jonathansampson/CuDdD/2/

答案 1 :(得分:0)

这应该足以让你入门。

var date = '8.06 (Fr) ';
var date_components = date.replace(/\s*\(.*?\)\s*/, '').split('.');

for (var i in date_components) {
  date_components[i] = parseInt(date_components[i], 10);
}

date_components.push((new Date()).getFullYear());

console.log(date_components); // Prints [8, 6, 2012]