0

我知道网上已经对此进行了一些介绍,但不幸的是,我仍然不太确定如何修改这段特定的代码:

timeCreated: function(dateString) {     
    var date = new Date(dateString);
    var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];

    var hh = date.getHours();
    var m = date.getMinutes();
    var dd = "AM";  
    var h = hh;

    if (h >= 12) {
        h = hh-12;
        dd = "PM";
    }
    if (h == 0) {
        h = 12;
    }

    return h + ':' + date.getMinutes().toString() + ' ' + dd + ' ' + monthNames[date.getMonth()] + ', ' + date.getDate().toString() + ', ' +  date.getFullYear().toString();


}

dateString 输出为Tue Nov 06 23:29:33 +0000 2012.

4

2 回答 2

2

您输入的日期格式与任何标准格式都不匹配,因此IE无法解析它,即无法构造正确的日期对象。

由于您的Date对象构造不正确,所有方法调用(例如date.getHours();date.getMinutes();)都返回 NaN。

如果您以可接受的格式使用日期字符串,例如 dateString = "Nov 06 2012 23:29:33 +0000",则它可以正常工作。

如果您想支持自定义格式基础数据解析,请查看 http://www.mattkruse.com/javascript/date/,它有一个很大的自定义方法getDateFromFormat(val,format)可以将任何特定格式的日期字符串转换为 Date 对象。请看一下,看看是否有帮助。

于 2012-11-13T06:19:42.730 回答
0

的格式是dateString什么?

对解析日期字符串的内置支持因浏览器而异,从差到糟糕。最好手动解析字符串以将其转换为 Date 对象,然后从那里开始。如果您提供字符串格式,则可以提供进一步的帮助。

于 2012-11-13T06:51:14.337 回答