我不断收到错误“Uncaught TypeError: date3.getFullYear is not a function”
我有一个 SQL 和 JS 格式的日期变量(从另一个函数作为参数传递):
min1 - in SQL format. [Like - '2017-08-13 0:0:00']
mindate - in JS format. [Like - 'Sun Aug 13 2017 00:00:00 GMT+0530 (India Standard Time)' ]
我正在使用这些变量创建一个名为“date3”的新日期变量。我尝试过以下方法:
var date2 = min1.split(' ')[0]; // should give me '2017-08-13'
date3 = new Date(date2);
并且,
var date3 = new Date();
date3 = mindate;
并且,
var date3 = mindate;
并且,
var Y = parseInt(min1.split(' ')[0].split('-')[0]); // 2017
var M = parseInt(min1.split(' ')[0].split('-')[1]) - 1; // 7
var D = parseInt(min1.split(' ')[0].split('-')[2]); // 13
var date3 = new Date(Y,M,D);
当我console.log date3时,它给出了正确的日期。但是当我在 date3 上执行 getFullYear() 时,它会给出错误:“Uncaught TypeError: getFullYear is not a function”
我已经尝试了一切,但似乎没有任何效果。 (我什至读过其他一些类似的问题,有些答案说这是因为“日期”是一个“时刻”对象,但我不明白它的含义以及它如何帮助解决这个问题)。
更新:
这是我如何使用 getFullYear 函数。我尝试过两件事:
datestring = date3.getFullYear() + '-' + (date3.getMonth()+1) + '-' + (date3.getDate());
并且
var y = date3.getFullYear(),
m = date3.getMonth() + 1, // january is month 0 in javascript
d = date3.getDate();
我在“for”循环中使用它,并且 date3 是在循环上方创建的,如下所示:
var date3 = new Date(Y,M,D);
console.log(date3);
for (k=1; k<=x; k++) {
var y = date3.getFullYear(),
m = date3.getMonth() + 1, // january is month 0 in javascript
d = date3.getDate();
var pad = function(val) { var str = val.toString(); return (str.length < 2) ? "0" + str : str};
datestring = [y, pad(m), pad(d)].join("-");
console.log("DATESTRING", datestring);
divCode += '<div class="swiper-slide" id="_' + datestring + '" data-hash="' + datestring + '"><b>' +datestring+ '</b><br><br>' +tableCode+ '</div>';
// Incrementing date by 1
date3 = date3.setDate(date3.getDate() + 1);
}
最佳答案
setDate
方法在对象上就地工作,函数的返回值是新日期的时间戳。
当你这样做时:
date3 = date3.setDate(date3.getDate() + 1);
在您的函数中,date3
现在是一个整数(而不是 Date() 对象),所以基本上您的代码现在所做的是 1502742691133.getFullYear()
,这是错误的。
您无需将 setDate()
的值设置为 date3
。只要这样做:
date3.setDate(date3.getDate() + 1);
关于javascript - 未捕获的类型错误 : getFullYear is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45664470/