0

这个日期转换器功能在 chrome 上运行良好,但在 Firefox 上却不行!任何人都可以帮助找出问题。

function converter(string) {
    var d = new Date(string);
    var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'sep', 'Oct', 'Nov', 'Dec'];

    var hour = d.getHours();

    return d.getFullYear() + ' ' + months[d.getMonth()] + ' ' + d.getDate() + ' | ' + (hour % 12) + ' ' + d.getMinutes() + ':' + (hour > 11 ? 'pm' : 'am');
}

alert(converter('2013-03-10 19:43:55'))
4

2 回答 2

3

这将修复您的代码:

converter('2013-03-10T19:43:55')

请注意T日期和时间之间的时间。

编辑:日期时间字符串应该是 ISO 8601 格式。在此处阅读更多相关信息。

于 2013-03-14T11:47:21.463 回答
1

Date.parseChrome 对错误的日期格式更宽容,但这在技术上作为or的输入无效new Date。您应该确保日期格式正确(RFC2822 或 ISO 8601),或者如果您想允许更多自由格式输入,请使用http://www.datejs.com/之类的库

更多信息:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/parse

于 2013-03-14T11:47:47.513 回答