我希望第二天将其格式化为" yyyy-MM-dd HH:mm"格式,但是当我在chrome的控制台中运行它时,我得到了一个Uncaught TypeError:date.getHours不是函数,为什么? nextDay变量显然是Date的实例。
但是,当我删除时间和分钟,只保留年,月和日期,它成功了,有人能告诉我原因吗?
var time = new Date().getTime();
var interval = 24 * 60 * 60 * 1000;
var nextDay = new Date(time + interval);
function padding(number) {
return number < 10 ? "0" + number : "" + number;
}
function format(date) {
var year = date.getFullYear(),
month = date.getMonth(),
date = date.getDate(),
hour = date.getHours(),
minute = date.getMinutes();
return padding(year) + "-"
+ padding(month + 1) + "-"
+ padding(date) + " "
+ padding(hour) + ":"
+ padding(minute);
}
console.log(format(nextDay));
答案 0 :(得分:2)
您的函数采用名为&#34; date&#34;的参数。然后尝试声明一个名为&#34; date&#34;的局部变量。该声明将被忽略,初始化程序将只覆盖参数的值。
更改参数名称:
function format(d) {
var year = d.getFullYear(),
month = d.getMonth(),
date = d.getDate(),
hour = d.getHours(),
minute = d.getMinutes();
return padding(year) + "-"
+ padding(month + 1) + "-"
+ padding(date) + " "
+ padding(hour) + ":"
+ padding(minute);
}
答案 1 :(得分:1)
您使用与参数相同的变量名称,date
使用两次,更改变量名称,如下面所示。
var time = new Date().getTime();
var interval = 24 * 60 * 60 * 1000;
var nextDay = new Date(time + interval);
function padding(number) {
return number < 10 ? "0" + number : "" + number;
}
function format(date) {
var year = date.getFullYear(),
month = date.getMonth(),
theDate = date.getDate(), //change the variable name
hour = date.getHours(),
minute = date.getMinutes();
return padding(year) + "-"
+ padding(month + 1) + "-"
+ padding(date) + " "
+ padding(hour) + ":"
+ padding(minute);
}
console.log(format(nextDay));