2012-06-07 87 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]' –