0

如何使用 javascript 将格式为 '10-Aug-13' 的日期或字符串转换为 'mm-dd-yyyy'?

 var date =  new Date('10-Aug-13');

上面的代码使用 IE10 返回 Invalid date,但在其他浏览器上运行良好。

4

6 回答 6

2

你可以使用外部库吗?如果是的话,我会推荐这个http://www.datejs.com/,那么你会做这样的事情:

var date = Date.parse('10-Aug-13'); // works on IE8+, Chrome, Firefox, Opera
于 2013-08-13T07:41:17.970 回答
1

我将假设这一年将始终是当前世纪,您可以添加如下:

var currentYear, parts;

currentYear = new Date().getFullYear().toString();
parts = "10-Aug-13".split("-");
parts[2] = currentYear.substring(0, currentYear.length - 2) + parts[2];

var date = new Date(parts.join(" "));

但是,如果您不关心世纪,您可以将其默认为 1,如下所示:

var parts, date;
parts = "10-Aug-99".split("-");
parts[2] = "1" + parts[2];
date = new Date(parts.join(" "))

此外,我还从日期字符串中删除了“-”,因为 FF 似乎不喜欢那样。

于 2013-08-13T07:35:52.050 回答
1

希望下面的这个js函数有帮助,日期参数应该总是'DD-MMM-YY'格式

function formatDate(dateparam) {
    var m_array = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
                   "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var dtparts = dateparam.split('-');
    var dateObj = new Date("20" + dtparts[2], m_array.indexOf(dtparts [1]), dtparts[0]);

    var date = dateObj.getDate();
    date = (date.toString().length == 1) ? "0" + date : date;
    var month = dateObj.getMonth() + 1;
    month = (month.toString().length == 1) ? "0" + month : month;
    var year = dateObj.getFullYear();

    return month + "-" + date + "-" + year;
}
document.write(formatDate("10-Aug-13"));
于 2013-08-13T08:21:35.103 回答
0

试试这个...

date.format("mm-dd-yyyy");
于 2013-08-13T07:17:01.233 回答
0
var date=new Date('10-Aug-13');
console.log((date.getMonth()+1)+'/'+date.getDate())+'/'+date.getFullYear()+);

或者

var d = new Date();
d.setMonth(8,10);
d.setFullYear(2013);
d.toString('MM-dd-yyyy');
于 2013-08-13T07:46:37.600 回答
0
var date=new Date('10-Aug-13');
date = (date.getMonth()+1)+'/'+date.getDate())+'/'+date.getFullYear();
于 2013-08-13T08:03:26.657 回答