日期转换器功能在Firefox中不起作用

时间:2013-03-14 11:44:05

标签: javascript

此日期转换器功能在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'))

2 个答案:

答案 0 :(得分:3)

这将修复您的代码:

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

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

编辑:日期时间字符串应为ISO 8601格式。阅读更多相关信息here

答案 1 :(得分:1)

Chrome对错误的日期格式更加宽容,但从技术上讲,这不是Date.parsenew Date的输入。您应该确保它是正确格式化的日期(RFC2822或ISO 8601),或者如果您想允许更多自由格式输入,请使用像http://www.datejs.com/这样的库

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