我将日期值传递给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)" />
答案 0 :(得分:2)
这是因为您在函数中收到的日期是输入的字符串,而不是Date
对象。
因此,在您调用date.getHours();
之类的内容之前,您必须将日期解析为字符串到日期,否则您将遇到Uncaught TypeError: undefined is not a function
错误。