Undefined不是JS中的函数错误格式化日期

时间:2015-01-03 03:04:01

标签: javascript date

我将日期值传递给formatDate函数时遇到了不应该的错误,为什么?如何在我的情况下结束一个实例?

    function formatDate(date) {
        if (date) {
            var hours = date.getHours();
            var minutes = date.getMinutes();
            var format = hours < 12 ? 'am' : 'pm';
            hours = hours % 12;
            hours = hours ? hours : 12; // making 0 a 12
            minutes = minutes < 10 ? '0' + minutes : minutes;
            var time = hours + ':' + minutes + ' ' + format;
            var output = date.getMonth() + 1 + "/" + date.getDate() + "/" + date.getFullYear() + " " + time;

            console.log(output);
          alert(output);

        }
    }
    <input type="datetime-local" onblur="formatDate(this.value)" />

1 个答案:

答案 0 :(得分:2)

这是因为您在函数中收到的日期是输入的字符串,而不是Date对象。

因此,在您调用date.getHours();之类的内容之前,您必须将日期解析为字符串到日期,否则您将遇到Uncaught TypeError: undefined is not a function错误。