1

我有一个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
谢谢。

4

2 回答 2

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/

于 2012-06-07T03:58:50.053 回答
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]
于 2012-06-07T03:49:41.980 回答