Javascript将日期从短格式转换为长格式

Javascript将日期从短格式转换为长格式,javascript,date,Javascript,Date,我正在使用以下代码: var date="May-02-2012"; var startDate = date; var tmp = startDate.split('-'); tmp.splice(1, 0, ','); var convertedStartDate = new Date(tmp.join(' ')); var month = convertedStartDate.getMonth() + 1 var day = convertedStartDate.getDate(

我正在使用以下代码:

var date="May-02-2012";
var startDate = date; 
var tmp = startDate.split('-'); 
tmp.splice(1, 0, ','); 
var convertedStartDate = new Date(tmp.join(' ')); 
var month = convertedStartDate.getMonth() + 1 
var day = convertedStartDate.getDate(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = ('0' + day).slice(-2) + "-" + ('0' + month).slice(-2) + "-" + ('0' + year).slice(-2); 
return(shortStartDate);
上述代码允许我将2012年5月2日转换为2012年5月5日

但是,我现在需要将其从2012年5月5日转换回2012年5月2日


但是我无法计算。

如果您不介意使用一个库,我发现这个库非常好用:

我推荐。

如果格式符合您指定的格式,就不太难了。下面没有做任何测试,因此如果格式错误,可能会出错。但是如果你给它错误的格式,任何函数也会如此

var s = '02-05-12';

function toWeirdDate(s) {
   var months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' ');
   var bits = s.split('-');
   return months[--bits[1]] + '-' + bits[0] + '-20' + bits[2];
}

alert(toWeirdDate(s)); // May-02-2012

在Google代码网站上查看date.js: