2012-06-07 82 views
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
感谢。

+0

是,我也想打印不是06,但是6月 – user1260827

回答

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/

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] 
+0

如何将6改为月份名称(6月)?谢谢 – user1260827

+0

@ user1260827 - 像这样:'[“Jan”,“Feb”,...,“Jun”,...“Dec”] [6-1]' –